Всем добрый день подскажите пожалуйста в описании модуля USART tiny2313 есть такой пример приема кадра длинной 9 бит
USART_Receive:. ; Ожидаем пока данные будут получены sbis UCSRA, RXC rjmp USART_Receive ; Получаем статус и 9-й бит данных, а затем остальные данные in г18. UCSRA in r17, UCSRB in r16, UDR ; Если ошибка, возвращаем -1 andi r18, (1«FE) | (1«D0R)| (1«UPE) breq USART_ReceiveNoError ldi r17, HIGH(-1) ldi г16, L0W(-1) USART_ReceiveNoError: Выделяем 9-й бит и возвращаем полученные данные Isг г17 andi г17, 0x01 ret
в данном примере не понятны две строки
ldi r17, HIGH(-1) ldi г16, L0W(-1)
а точнее возвращаемые значения -1
HIGH(-1) L0W(-1)
то есть как компилятор переведет -1 в двоичный код?
Забивается на выход невалидное значение, чтобы приложение потом у себя поняло что произошла ошибка, а не какие-то данные были приняты. Иначе в старшем байте старший бит(а в идеале все с 1-го по 7-й) точно должен быть равен нулю.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Ух ты, спасибо за линк << 8-bit AVR Instruction Set >> выпуск 1997/05/02 (в редакции 2005/11/02-oborgan)
Спокойненько пользовался прежним мануалом AVR Enhanced RISC Microcontrollers Data Book: 5. << 8-bit AVR Instruction Set >> выпуск 1996/08/28 (в редакции 1996/10/03-Atmel) получается, там кой-чего пропущено, в мелочах...
А насчет WORD-а ZH:ZL когда-то читал в сети ругань, один японец не обнаружил инкремнта в старшем, предположил что сильно разогнал проц., короче, мутная история...
_________________ ..всего две 6Ф1П, включенные последовательно, высушат обое ваших сапог даже в автомобиле..
Небольшое уточнение. LPM не у всех МК работает со всеми регистрами. Не помню точно, то ли у старых МК, то ли еще и у тинек. В этом случае так: lpm // Загрузка данных в регистр r0. Уточняйте в даташите на конкретный МК.
...распечатать на двух сторонах, заламинировать...
Кому-как, а я ставлю "лайк". Тем более, что и сам давно затеял подобное, правда, для каждой AVR-ки индивидуальный набор команд, чтобы хоть в различиях не путаться по ходу, одна беда, каждый файлик до чистового варианта так и не доведён сядешь-бывало писать, и вся эта красота вмиг откладывается "на потом"
Demiurg писал(а):
...LPM не у всех МК работает...
Полностью согласен, имея LPM, вовсе не обязательно пользовать LPM Rd, Z хотя с последней в паре идёт LPM Rd, Z+ которая облегчает автоматически "намайнить" кучу констант, и вообще... имея толстенный ROM, я бы и сам натолкал его всякими таблицами, графикой плюс музон (опционально)
_________________ ..всего две 6Ф1П, включенные последовательно, высушат обое ваших сапог даже в автомобиле..
Вообще у них минимальные отличия чтобы зря тратить бумагу, проще индивидуальные особенности отметить как исключения. Например как отсутствующая команда SPM у семейства TINY, наличие "длинных" переходов только у контроллеров с большим объёмом флеша, команды MUL*. И только для старших контроллеров типа XMEGA и 32-х битных уже пожалуй надо отдельный листок.
Вообще у контроллера нет отдельной команды LPM - это всего лишь алиас на команду LPM R0, X. Точно так же как нет и команды CLR Rx, на самом деле это команда XOR Rx, Rx.
Вообще-то последняя редакция системы команд Atmel-0856-AVR-Instruction-Set-Manual от 11.2016 года (или версия Atmel-0856L-AVR-Instruction-Set-Manual вот по этой ссыли http://ww1.microchip.com/downloads/en/d ... manual.pdf).
Тиньки РААЗНЫЕ бывают... (насчет "нет SPM") Та же attiny13A, к примеру (см. 8126E–AVR–07/10 стр.161)
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 36
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения