Прерывание по I2C есть конечно: "18 0x011 TWI Two-wire Serial Interface".
Как им пользоваться смотрите описание работы TWI, например на стр.167 Figure 21-10 для записи данных в I2C, стр.171 Table 21-3 как реагировать на разные события при передаче. Со стр.173 раздел 21.6.3 о приёме, на стр.175 подробно статус и реакции. Все отсылки по текущему выложенному pdf
.
спасибо
Dmitriy40, похоже просто я не разобрался до конца, использую аппаратный TWI а соответствующие прерывания - нет, это конечно ненормально, теперь думаю разберусь.
-- 28.04.2025, 01:22 --Помнится, я тут спрашивал, почему minipro стирает fuses. Опытным путём разобрался. Пожалуй выложу здесь, а то про него в инете почти ничего не написано. Прошивать нужно так:
Код:
minipro -p ${MCU} -z -e -w ${TARGET}.hex -c code
опция -z просто проверяет все ли пины подключены, -e запрещает стирать чип (без неё то fuses и выставляются по дефолту), - w указывает что выполняется запись, ${TARGET}.hex - это файл прошивки, -c code указывает, что записывается область программ.
установленные fuses можно считать командой:
Код:
minipro -p ${MCU} -r fuses.conf -c config
если что то не устраивает, файл fuses.conf можно подправить как нужно, и записать командой:
Код:
minipro -p ${MCU} -z -u -e -w fuses.conf -c config
опция -u это разблокировка, с ней будто бы получается надёжнее, но у меня прошивалось и без неё.
ещё старание чипа (если он вдруг залочен):
Код:
minipro -p ${MCU} -E
* это всё для весьма популярного программатора TL866 под Linux.
-- 28.04.2025, 01:37 --совет про другой проц
да, stm сейчас в моде, но я с ними не работал, а с avr опыт довольно большой, так что пока позволяют возможности,буду обходиться ими, если уж совсем никак - придётся изучать stm.
среда ардуино поддерживает STM32F103
честно говоря я скептически отношусь к этой среде, по моему от этой приблуды больше вреда чем пользы, абсолютно всё можно сделать без неё, гораздо и проще и лучше.