Anonymous 05/16/2023 (Tue) 01:34 No.21875 del
>>21874

А теперь про ФИЧУ тини13. Изначально я не хотел держать таймер (что для ШИМа юзается) включенным, пока отжата кнопка HEAT. Ну так и сделал, однако после пары нажатий заметил, что на ослике луч.. несколько не на земле. Кароч, драйвер пина подтягивает пин к VCC - какого хуя я не знаю, в ERRATA этого нет. Я пробовал пропускать операции, 4, 8, писал ассемблером пропуски, писал делеям - не работает. Видимо это что-то из разряда системных регистров, или просто баг уже хардвеерный. Однако я не пробовал обнулять TCCR0A/B регистры вместе (A регистр не менялся вообще), возможно оно связано, и, если сбросить A регистр - то пин переключится в "нормальное" состояние, выйдет из под монополии таймера кароч. Напрямую сбросить порт в нуль не выходит, даже если циклом. Мое решение - просто переключать пин на вход епт))0)))) PULL-UP отключен, следственно порт в Hi-Z висит, и вот чтобы не было шумов, что могут открыть силовой драйвер - висит резистор R6, стягивающий пин на землю, следственно подавляя шумы до не-критичных значений. Такой вот ебанизм.

Что еще смешнее - это работа с EEPROM. Скопипастил, буквально скопипастил из даташита примеры - не работают. Чтение вешает контроллер (сброс не настраивал, как и сохранение причин). Перечитал вдоль и поперек шит про EEPROM - ничего не изменилось в коде. Смешно, да, но функции из eeprom.h из либы avrlibc стандартной - работают. И ЕДИНСТВЕННОЕ БЛЯТЬ РАЗЛИЧИЕ в том, что в коде либовских функций есть eor операция (искл.ИЛИ двух регистров).... с одним и тем же регистром. Регистром из РОН, при том, что встречается он всего три раза в коде - в первый раз когда выделяется (и присваевается в нуль), после чего два упоминания в eor r25,r25; Серьезно:

000001d4 <eeprom_read_byte>:
1d4: e1 99 sbic 0x1c, 1 ; 28
1d6: fe cf rjmp .-4 ; 0x1d4 <eeprom_read_byte>
1d8: 8e bb out 0x1e, r24 ; 30
1da: e0 9a sbi 0x1c, 0 ; 28
1dc: 99 27 eor r25, r25
1de: 8d b3 in r24, 0x1d ; 29
1e0: 08 95 ret

Вот единственное отличие моего кода от либовского - отсутсвие операции как по 1dc адресу.

Message too long. Click here to view full text.