UART гораздо проще в реализации, но соответствующие разъемы не везде есть. Впрочем, почти везде можно поставить переходник. USB (в том числе, HID и virtual-UART) в реализации сложнее, и сложнее подключить к чему-то кроме компа, например, к самодельному выносному терминалу.
UART гораздо проще в реализации, но соответствующие разъемы не везде есть.
Век живи - век учись : не подозревал, что для UART существуют специальные разъемы Я всегда был уверен, что UART заканчивается на пинах Rx - Tx микроконтроллера, а дальше делай с ним что хошь - сопрягай через разъемы, развязывай токовой петлей, модулируй радиоканал. Проблема UART не в разъемах, а в том, что он заточен для внутри- и меж-блочных связей, и без соответствующей дополнительной обвязки для связи дальше 1..2 метров не годен.
Цель передачи значения типа float чтоб сделать регулировку от 0 до 100%
как из этой постановки задачи вытекает необходимость float? 100 - это целое число!
OCR0 - это байт. в байте предельное значение - 255. т.к. за 100% всегда принимается ПОЛНЫЙ объем, то 100% - это 255. следовательно, каждая единичка в OCR0 соответствует 0,39%. получается, что у вас и так ДРОБНОЕ число процентов может находиться в OCR0, хотя оперируете вы с ЦЕЛЫМИ. такой вот нюансик.
в школе проценты изучали? удивительно, что подобные вопросы возникают...
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
ответ не верный. можно. но надо понимать, каков будет результат. в переменную OCR0 в результате такого присваивания попадет младший байт целой части результата преобразования float в int
А теперь внимание, вопрос - (младший байт целой части преобразования float в int == float) ? Если да, то я многого не знаю про float. А если нет, то мой ответ на вопрос правильный. Именно float в OCR0 занести невозможно. Если Вы с этим не согласны, то докажите мне, что один байт - это float и есть. Если я заношу переменную куда-то, это означает, что она, по-крайней мере, может быть оттуда без искажения считана. В противном случае эта переменная не занеслась туда, куда я хотел её занести.
ага. я ни слова не говорил про значение float, я говорил о результате преобразования "по умолчанию" типов данных, т.е. float в int
Число 3.14 после приведения к int превратится в 3, а младший байт этого int-а попадет в байтовую переменную. Число 3.14e-2 после преобразования в int превратится в 0. Число 314.123 после преобраования превратится в 314, и младший байт 0x3A попадет в байт.
что не так?
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
А вот вопрос в тему пропуска полупериодов и проч.: какая частота ШИМ предпочтительней, для бытовых целей, с точки зрения ресурса компонентов, нагрузки на проводку итд? 50Гц, единицы Гц, десятые доли Гц? 1,5 кВт тэн управляется симистором ВТ139-600 через драйвер МОС3063 (с контролем "0"). Сейчас длительность периода 5 секунд с заполнением 0, 20, 40, 60, 80, 100% Хорошо ли это?
Последний раз редактировалось maxitch Ср янв 25, 2017 01:41:08, всего редактировалось 1 раз.
С процентами у меня все нормально. Просто в программе на ПК думал делать так, нажимаю кнопку + это в программе будет отоброжаться как 1 из 100 % следовательно программа отсылает команду увеличить мощность на 1% в мк получается переменную же нужно увеличить на 2.55? Или я не верный путь выбрал?
да делайте с float-ами, компилятор сам все "округлит" - я выше вам написал, что будет в разных случаях. просто float сожрет память, но если вы на "просторном" МК делаете свои поделки - какая разница?!
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения