Задать вопрос
  • Format specifies type 'char *' but the argument has type 'char'?

    @res2001
    Developer, ex-admin
    В строке:
    printf("%s", hash);
    спецификатор шаблона %s обозначает строку, а строка в Си это "char *", а вы передаете ему в параметре простой char. Поменяйте спецификатор шаблона на %c.
    И учите матчасть! www.cplusplus.com/reference/cstdio/printf/?kw=printf
    Ответ написан
    3 комментария
  • Почему читаемые данные с COM порта ломаются при потоке?

    mannaro
    @mannaro
    Умею профессионально гуглить
    Ну, вроде как, COM - последовательный порт. Это значит, что данные просто бегут по нему. Например, там скопилось 22, пока вы пытались его прочитать, пришло 22, а бывает, что прочитали быстро и успела дойти только одна цифра. Поэтому надо после отправки числа отправлять какой-то разделитель, чтобы потом понимать, где заканчивается предыдущий ответ и начинается новый.

    Но если передаете только температуру, то я бы советовал использовать Serial.write(25). Он передаст один байт со значением 25 (0b00011001). В nodejs надо будет его просто распарсить.
    Иначе же он приведет число к строке (2 байта: "2" и "5") и будет посылать их раздельно.
    Ответ написан
    3 комментария
  • За что олдскульные электронщики ругают ардуино?

    @n12eq3
    всё правильно говорится, с некоторыми оговорками. основные минусы
    1) говнокод. если использовать родное приложение, прошивка получается крайне кривой. отсюда лезет убогость работы по скорости, убогость работы библиотек (совместная работа нескольких), убогость вырастающего на этом кале "программиста", убогость по работе устройства в целом.
    2) отрешённость от железа, искажение представлений о его работе. крайне плохой инструмент для начала изучения контроллеров. самый бородатый и эпичный пример киселя в головах "программистов" - 99% уверены что у всех моделей ардуин (соответственно у их "центральных" чипов) есть аналоговые выходы.
    3) отсутствие развития в изучении и стимула для самостоятельной работы, отупление пользователя в целом. digitalPin high работает равнозначно на uno- и на due-, тогда как первое это древняя atmega а второе это контроллер с ядром cortex-m3 и с кратким даташитом на 1500 страниц. купить камаз чтобы засыпать своему коту лоток.
    4) очень странно, но наличие коммьюнити. просто из статистики имеется достаточное количество адекватных инженеров-пользователей этой платформы. также достаточно количество тех же инженеров не-пользователей, но работающих с этим железом за деньги. условно пару процентов пользователей производят скорее всего 100% всех модулей и/или библиотек + китайская штамповка ---> см п.3 но уже не касаемо железа, а всей платформы в целом. зачем что-то учить и изобретать если можно купить 3 готовых модуля, инклуд 3 библиотеки и "устройство" готово.
    5) говнокачество. форм фактор андрунно не предполагает использование, отличное от настольного. в готовое устройство - не засунуть. в прототип который будет "надёжным" в эксплуатации - не засунуть. каких-либо кастомных схем не собрать - pls-pbs разъёмы при постоянном использовании разбалтываются и при большой схеме на бредборде можно часами шевелить провода ища плохой контакт. всё это можно помножить на хламовые компоненты из чины (кто у нас покупает оригиналы по 20 евро?)
    6) искажение "имиджа" профессии. любой аутист соберёт вайфай замок с эзернет шилдом и блютус чайником за 13 минут, при том, что изготовление "взрослой" электроники займёт неделю или месяц. при этом в популистских статьях полученные результаты подаются как сопоставимые. т.е. дядя учился и работал 10 лет чтобы проектировать правильно и хорошо а школьник собрал аналог пока сидел на унитазе. при этом сравнить качество/функции/надёжность/технологичность забывают, и у дяди подпекает.
    основной источник наездов это п.1, п.2, п.6.

    в целом это интересная поделка для хобби и быстрого прототипирования. очень полезна во многих ситуациях.
    также можно (нужно) посмотреть на отношение к этому у более развитых коллег из западных стран - там это преподносится именно как конструктор для хобби, никаких "инженеров" из этого кала не вырастает.
    ещё достаточно показательный пример - сравнительно часто в проектах по фрилансу (на западе) встречаются задания вида "я сделал прототип и он работает. хочу перенести в реальное железо". это очень правильный подход.
    Ответ написан
    2 комментария
  • Стоит-ли сейчас начать изучать программирование под fpga?

    x67
    @x67
    Да, стоит. Это не золотой век FPGA, однако они будут востребованы всегда.

    Пользуясь случаем, хочу поделиться интересной игрой, которая прямого отношения к FPGA не имеет, но может стимулировать интерес в этом направлении)
    Ответ написан
    3 комментария
  • Как исправить ошибку "исключение в операции с плавающей точкой"?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Исключить деление на ноль.
    Ответ написан
    Комментировать
  • Как сделать так, чтобы AC питание можно было включать любой стороной?

    Если реле для переменного тока, то фаза и ноль не принципиальны. Т.к. относительно ноля напряжение уходит и в плюс и в минус. Просто цепляете переменку, ничего от этого не умрет.
    А вот то, что советуют поставить мост... если там тиристоры/симисторы внутри, то оно может потерять способность закрываться без перехода через 0.

    Не понял кусок
    два для постоянного (ноль и фаза)
    Это вообще что было? На постоянке есть + и -. (Похоже речь ведь об управляющих контактах реле?)
    Ответ написан
    7 комментариев
  • Частота работы МК и передачи одно и то же?

    Им не нужно попадать в "такт".
    Частота обработки сигнала выше, чем частота передаваемого сигнала, так что приемнику не надо быть синхронизированным с передатчиком, достаточно поймать начало передачи, не обязательно с точностью до наносекунд. (тот же I2C на 400кГц, а МК ваш на 8МГц, он за время передачи одного бита еще что-нибудь успеет сделать)

    +сейчас интерфейсы реализованные на периферии МК могут работать независимо от ядра, порой со своим тактированием и своими буферами для приема и передачи данных, вам останется только проверять или загружать эти буферы, а периферия сама будет отправлять-принимать данные (например USB который от 48МГц фигачит, в то время, как сам МК от 12МГц тактируется, аппаратный UART)
    Ответ написан
    8 комментариев
  • Что такое 3D движок и что в нём происходит?

    ThePyzhov
    @ThePyzhov
    iOS Ninja
    Вот очень хороший тутор по данной теме. Т.к. судя по посту вы и OpenGL не знаете.

    Но вообще, без знания и опыта работы с нормальными 3D движками, браться за написание своего - это как собирать свой компьютер (покупать smd компоненты, плату, травить ее, паять все это дело и т.д.), муторно и абсолютно бестолково.

    P.S. возьмите С++ и SFML и попробуйте накидай свой 2D движок. Это в разы проще и опыт какой-никакой появится. А перед тем как писать непосредственно 3D-движок, посмотрите что такое Unity и с чем его едят. На гитхабе есть самописные 3D движки, их код не мешало бы вам тоже посмотреть. А потом только браться за свой.
    Ответ написан
    Комментировать
  • Насколько кооперативен mining pool?

    Jump
    @Jump
    Системный администратор со стажем.
    Это инструмент нормального вероятностного распределения.

    За год хористы консолидированно намайнят больше солистов?
    Больше намайнит тот у кого мощность больше.
    При равной мощности намайнит больше тот, кому больше повезет.
    Чем больше мощности оборудования, тем меньше влияние удачи.

    К примеру на вашей мощности по статистике вы должны в среднем майнить один блок в год, и получать за это 50монет.
    Т.е этот блок если повезет вы найдете через неделю, а если не повезет, то через 150лет, но в среднем один блок в год.

    Мелкий пул с мощностью в 100раз больше вашей в среднем будет майнить один блок в 4дня.
    Т.е он может найти блок через минуту, а может через несколько месяцев, но в среднем один блок в 4дня.

    Крупный пул с мощностью в 10000раз больше вашей в среднем будет майнить один блок за 40минут.
    Т.е он может найти блок за одну секунду, а может за несколько дней, но в среднем за 40минут.

    В результате в первом случае вы скорее всего вообще не доживете до получения блока.
    Во втором случае вы получите первые монеты в ближайшем обозримом будущем, но не скоро.
    В третьем случае вы стабильно будете получать свои монеты раз в неделю.
    Вот и вся разница.

    Майнинг название говорящее, изначальный смысл майнинга это поиск крупиц золота в тоннах пустой породы.
    Так и здесь.
    Ответ написан
    2 комментария
  • Что означает "ht" в "htaccess" и "htpasswd"? Почему "access" - полное слово, а из "passwd" вырезали "o" и "r"?

    15432
    @15432
    Системный программист ^_^
    1. То же, что и в http, HyperText (Гугл в помощь)
    2. Так называется утилита в unix системах для управления паролями. Доподлинная история сего названия мне не известна. Предположу, что во времена древнего доса, когда было ограничение на 8 символов в именах, вот так сократили слово password. Access укладывался в 8 символов.
    Ответ написан
    1 комментарий
  • Есть примеры мигание светодиодом на intel Core i7?

    @Fixid
    Процессор без обвязки просто кусок кремния.
    Сейчас там нет как такового GPIO. Все реализуется через сторонние контроллеры по общей шине.
    Так что проще воткнуть arduino и получить GPIO через USB.
    Ваш вариант невозможен
    Ответ написан
    Комментировать
  • Сборка радиоуправляемой игрушечной машинки на основе Arduino. Как?

    gbg
    @gbg Куратор тега Arduino
    Любые ответы на любые вопросы
    Главный источник информации - easyelectronics.com

    Одной ардуины здесь не хватит. Еще понадобятся:
    -силовые модули для управления двигателями и светом
    -модуль источника питания
    -модуль связи

    Ардуина - это только мозги, причем довольно хилые.

    Вопрос совместимости моторчика с ардуиной особого смысла не несет. Дело в том, что напрямую к ардуине практически никакой моторчик подключить нельзя, она сгорит.
    Между ардуиной и моторчиком будет посредник - силовой модуль. Благодаря этому, ардуина фактически совместима с любым двигателем.

    По поводу "где купить" - либо онлайн магазины, либо магазины электронных компонентов. Ищите поиском в вашем городе. В крупных городах можно купить все в одном месте, но переплатив раза в 1,5-5 по сравнению с али.

    Как бы делал машинку я.

    В качестве мозгов высокого уровня и модуля связи я бы взял что-то из ESP32 или ESP8266. Первая работает с bluetooth и wifi. Вторая работает только c wi-fi.

    В качестве контроллера периферии сойдет и ардуина. Но! Я бы не стал городить огород из кучи плат и проводов - вероятнее всего, это не влезет в корпус машинки, а если и влезет - будет очень страшным.

    Поэтому все компоненты этой конструкции я бы разместил на специально разработанной печатной плате, которую потом по моему заказу изготовит какой-нибудь Резонит.
    Ответ написан
    Комментировать
  • Почему возникает проблема с указателем в C?

    vesper-bot
    @vesper-bot
    Любитель файрволлов
    Тип первого параметра у printf является char*, в итоге строка разыменовывается внутри printf при печати и парсинге шаблонов. Попытка передать *teststring вызывает передачу значения строки, имплицитно преобразованного в указатель, в итоге printf пытается разыменовать 4 символа строки и с закономерным результатом получает AV (access violation, 0xC0000005, segmentation fault core dumped и другие названия).

    Поздравляю с успешным выстрелом себе в ногу. :)
    Ответ написан
    7 комментариев
  • Почему низкой напряжение назвали землей?

    @evgeniy_lm
    В электронике и электротехнике напряжения измеряются относительно определенной точки которая называется "ноль". Т.к. обычно эта точка заземляется то еще имеет название "земля" или "ground" (GND как в вашем случае).
    Напряжение это "разность потенциалов" т.е. измеряется между двумя выводами. На одном выводе напряжения физически быть не может ни низкого, ни высокого.
    В некоторых МК для удобства разводки платы предусматривается несколько выводов GND. Схематически внутри МК они соединены между собой, разницы между ними нет.

    работа конденсаторов с ТТЛ ни как не связана
    Ответ написан
    Комментировать
  • Как распознать дефект на изображении?

    Задача специализированая и требует написания отдельного алгоритма, можно сказать, что решение подгоняется под задачу. Решается, как написали выше с помощью OpenCV для С++, можно с помощью EmguCV (обертка для .NET для OpenCV)
    Ответ написан
    Комментировать
  • Как работает эта программа, определяющая порядок байтов в компьютере?

    15432
    @15432
    Системный программист ^_^
    Создаётся переменная типа unsigned short int, которая почти во всех современных компиляторах имеет размер 2 байта. Затем ей присваивается значение 1. В случае архитектуры Little Endian, единица запишется в младший байт переменной, а в случае Big Endian - в старший байт. Дальше именно это и проверяется - конструкция *((unsigned char *) &x) получает значение младшего байта переменной. Если там оказался ноль, значит архитектура Big Endian.

    Код, делающий то же самое, но проверяющий старший байт:
    #include <stdio.h>
    unsigned short x = 1; /* 0x0001 */
    int main(void)
    {
      printf("%s\n", *((unsigned char *) &x + 1) == 0 ? "little-endian" : "big-endian");
      return 0;
    }
    Ответ написан
    Комментировать
  • Почему не выводит 5.0/9.0?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    www.cplusplus.com/reference/cstdio/printf
    #include <cstdio>
    
    int main() {
    	float num;
    	num = 5.0 / 9.0;
    	printf("%f", num);
    
    	return 0;
    }

    И так на всякий случай, ошибки можно читать, там часто весьма понятно написано, в чём проблема.
    Ответ написан
    7 комментариев