#define RSport PORTB // Указать порт, к которому подключена линия управления RS #define RSddr DDRB // Указать регистр направления порта, к которому подключена RS #define RSpin 5 // Указать номер бита порта, к которому подключеа линия RS
Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Всем привет! На работе потребовалось прошить железо (ATTYNI 44A). Софт написан в ардуино. Дел с ардуино не имел, потому прошу помощи.
Есть программатор (самодельный). На нем имеются микросхема FT232RL. На плате (возле разъема для программирования), которую надо зашить, имеются надписи: MISO, MOSI, RST, CLK, +5V, GND. В общем, Arduino IDE я настроил (в папку \Documents\Arduino\hardware\ATTinyCore я перенес нужные файлы), в IDE появилось куча доп. опций. Выставил как на скриншоте.
Какой выбрать программатор? Какая последовательность прошивки? 1. Зписать программу 2. записать фьюьзы (нажатием кнопки "записать загрузчик")?
Что-то в таком порядке, с выбранным программатором как на снимке, ошибки лезут. Грешу на то, что либо программатор не правильный выбрал, либо IDE не настроил.
Всем привет! На работе потребовалось прошить железо (ATTYNI 44A). Софт написан в ардуино. Дел с ардуино не имел, потому прошу помощи.
Есть программатор (самодельный). На нем имеются микросхема FT232RL. На плате (возле разъема для программирования), которую надо зашить, имеются надписи: MISO, MOSI, RST, CLK, +5V, GND. В общем, Arduino IDE я настроил (в папку \Documents\Arduino\hardware\ATTinyCore я перенес нужные файлы), в IDE появилось куча доп. опций. Выставил как на скриншоте.
Какой выбрать программатор? Какая последовательность прошивки? 1. Зписать программу 2. записать фьюьзы (нажатием кнопки "записать загрузчик")?
Что-то в таком порядке, с выбранным программатором как на снимке, ошибки лезут. Грешу на то, что либо программатор не правильный выбрал, либо IDE не настроил.
ft232 можно было и загуглить, тогда было бы понятно что это просто usbToUart конвертор. А если шьем через юарт (последовательный порт), то это что-то на подобии программатога Громова и дальше копать и копать информацию. Для прошивки без гемороя купите USBasp, цена которым пару баксов и есть почти в каждом радиомагазине. Последовательность зашития фьюзы-прошивка, в принципе, любая, если только фьюзы не блокируют залитие прошивки (например отключают исп интерфейс).
Ковыряю информацию, как перевернуть тетрады в байте местами? В ассемблере есть одна команда, очень удобная, а в Си?
В каком ассемблере? Если речь о avr, то да. Но и в AVR-GCC это тоже есть, соответственно: __builtin_avr_swap(x) Описана в заголовочном файле builtins.h avr-libc, ежели чего.
А вообще, откровенно говоря, при включенной оптимизации что использование этой команды (вызывающей соответствующую команду SWAP ассемблера avr), что простое #define swap(x) (((x & 0x0F) << 4) | ((x & 0xF0) >> 4)) генерируют один и тот же код с этим ассемблерным вызовом.
Уродский этот Си с его уродскими библиотеками и объявлениями. Вообще идиотский язык программирования. Три дня уже пытаюсь дисплей запустить, все почем зря. Переставишь пару библиотек местами - компилится. Не переставишь - кучу ошибок выдает. Но не так ни так не работает! Да еще и чтобы что-то применить - надо знать какую библиотеку, где и когда врубить! А еще и во всех нахрен файлах ее прописать.
Зачем же мне тогда подключать библиотеку с функциями переворачивания байта, библиотеку задержек, прерываний, вводов/выводов, если можно подключить целиком библиотеку работы с дисплеем? Уже сделал среди кода включения светодиода контрольного, чтобы видеть, где у меня код висит, так он повис у меня в месте ожидания флага готовности дисплея. Тупо. Потому что почему-то у меня этот флаг читаться начинает раньше, чем идет инициализация дисплея. Сверху вниз выполняет все функции и все тут. А если из инициализации вызывать эти функции, то почему-то заваливает ошибками, что не там и не то объявлено. Как же должно быть, что подключил библиотеку с дисплеем и все! Забыл! Только выводишь на него буквы и все, не заботясь, как он там этот флаг ждет...
Добавлено after 8 minutes 13 seconds: Еще пишет мне в ворнингах, что конфликт типов у него в функции... Какой конфликт типов, если у меня функция ВОЙД и параметры ВОЙД. Ничего не передаю и не возвращаю... Откуда он вообще берет эту ересь?!
З.Ы. Простите, мне этот бред, но накалило до белого.
Я использую АВРСтудио. Просто с нее начинал на ассемблере. Не скажу, что его хорошо узнал, но на ассемблере казалось проще все и понятнее, хотя разбирать его команды тоже сложно, но зато однозначно.
Наверное привыкну, надеюсь. Читаю на данный момент все подряд. Может дадите совет, что почитать по подключению 1602 к Атмега16, чтобы 4битный режим и чтение флага занятости. А еще, выводы любых портов, которые свободные используются не по порядку. (Ранее, я это делал на ассемблере и очень компактно получалось). Здесь уже 700 байт кода не рабочего - это я ассемблерную свою библиотеку на Си переводил.
Добавлено after 3 minutes 10 seconds: И еще интересно... Если на компиляцию нажать иной раз 5 раз, то ошибки и ворнинги пропадают. За раз их становится меньше, а на следующий раз вообще нету! Как это так???
chipenable.ru Там был пример подключение дисплея на произвольные пины мк. Лично я всегда вешал на один порт. В крайнем случае, данные на одном порту, управление на другом.
Может дадите совет, что почитать по подключению 1602 к Атмега16, чтобы 4битный режим и чтение флага занятости. А еще, выводы любых портов, которые свободные используются не по порядку. (Ранее, я это делал на ассемблере и очень компактно получалось).
Завелась библиотека с ЧипЭнейбл.ру. Правда, тоже пришлось маленько комментарии к ней почитать и голову поломать. Оказалось все банально. Надо было все файлы с расширением .h кинуть в Хидеры к проекту. Ну и остальные как положено. Только тогда заработала. Почему-то нигде не увидел акцента на этом и описания как правильно пользоваться АВРСтудией по созданию проекта.
Короче, если кому будет надо, то обращайте внимание, что раскинуть файлы по папкам в проекте - это еще ничего не значит. Их нужно из самого проекта в дереве папок добавить (ПРИСОЕДИНИТЬ) к проекту, чтобы он их видел.
З.Ы. И жалко, что я уже удалил свою писанную библиотеку совсем... Может тоже заработала бы. ((((
Завелась библиотека с ЧипЭнейбл.ру. Правда, тоже пришлось маленько комментарии к ней почитать и голову поломать. Оказалось все банально. Надо было все файлы с расширением .h кинуть в Хидеры к проекту. Ну и остальные как положено. Только тогда заработала. Почему-то нигде не увидел акцента на этом и описания как правильно пользоваться АВРСтудией по созданию проекта.
Короче, если кому будет надо, то обращайте внимание, что раскинуть файлы по папкам в проекте - это еще ничего не значит. Их нужно из самого проекта в дереве папок добавить (ПРИСОЕДИНИТЬ) к проекту, чтобы он их видел.
З.Ы. И жалко, что я уже удалил свою писанную библиотеку совсем... Может тоже заработала бы. ((((
само собой! К хидерам или в свойствах проекта прописываем пути, или инклюдим с прописанием пути. Сишные файлы в дерево добавляем. Некоторые умудряются сишные файлы через директиву инклюд подключать, но это по молодости опыта, потом проходит. Не люблю я эти Ваши библиотеки с сайтиков. Даже фирменные авровские аппноты иногда говеные. Очень часто встречаются любители всунуть в код нечто вида while(isRedy()); Т-е заставляют ядро втыкать до готовности периферии (юарт, айтуси, и т.д.) Код должен быть построен через системный таймер - запулили процедуру, она проверила состояния, переключила регистры,. приготовила буферы и т.д. и возврат. А периферия сама по прерыванию молотит. На следующем тике таймера - снова проверка состояния. Например, когда в программе надо общаться с 4мя ацп по спи, делать математику с плавающей запятой, пулить модбас и еще и в другой юарт лог писать - ждать некогда.
Кто бы еще толково описал подобное построение программ с помощью таймеров. А то я тут читал у Ди-Халта про это, но там одно по одному и путано, в итоге он как-то сразу переходит на диспетчер задач и РТОС. Надо бы, чтобы понятно было расписано, как использовать таймер, какие промежутки считать, как использовать и на пальцах. ))))))
Сейчас этот форум просматривают: Starichok51 и гости: 27
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения