Jetetex писал(а):Даже из приведенного куска кода видно, что используется компаратор первого таймера -
Поскольку нормальной ссылки на код не было и нет, в первую очередь приходится судить по описанию. А под термином "компаратор" в первую очередь понимают именно аналоговый компаратор, а вовсе не блок сравнения таймеров.
Jetetex писал(а):В архиве (см пост выше) есть исходник, там весь текст программы.
Что мешало дать нормальную ссылку на тот код, который вы пытались скомпилировать? Посыл "где-то в той теме, в последнем посте" воспринимаются как "ищите сами, если найдете ошибку - не то нашли". Если имелось в виду вот
это, то там всего один файл, отдаленно похожий на код, и тот не исходник. Зачем копировать туда содержимое стандартных заголовочных файлов? Зачем там адреса и коды команд? Куда уползает форматирование? Почему ни одна настройка не сделана по-человечески (со сдвигами, логическими операциями и комментариями)?
Вот, например
Timer1_comp1:
| 000063 E040 | ldi Temp,0 ;обнуление таймера
| 000064 BD4D | out TCNT1H,Temp
| 000065 BD4C | out TCNT1L,Temp
| 000066 3050 | cpi Temp5,0b00000000
| 000067 F011 | breq point_on
| 000068 E050 | ldi Temp5,0b00000000
| 000069 C001 | rjmp Shift
| 00006A E850 | point_on: ldi Temp5,0b10000000
Зачем-то прокомментировано обнуление TCNT1, хотя эта операция и так видна из кода. Зато сравнение Temp5 с 0b00000000 оставлено без внимания. Что такое Temp5? Что такое 0b00000000, что его пришлось записывать в двоичной форме? Только имя метки относительно осмыслено (это включение десятичной точки?).
.
И на счет директивы .EQU - сперва что присваиваем, потом кому., в моем случае:
Вообще-то сначала
чему присваивает, потом
что, в вашем случае pinRS <- PortB0, то есть присвоить "переменной" pinRS значение PortB0, то есть 0 (не особо понимаю, чем в данном случае константы portB0, pinB0, ddrB0, PB0 и т.п. лучше простого десятичного числа 0, но, видимо, кому-то нравится).