Valek87 писал(а):Вектора прерываний так сделать?А здесь что не так?Код: Выделить всё
ldi r18,0b00100111 ;разрешить прерывание компаратора (TIMSK1)
sts 0x6F,r18
Там делать НЕЛЬЗЯ!!!
делать надо так:
- копируешь из m324Pdef.inc таблицу описания векторов, она в самом конце
- вставляешь в свой проект
- удаляешь лишние прерывания, или за коментируй не нужные
- далее редактируешь, чтобы получилась конструкция вида:
Код: Выделить всё
;.equ INT0addr = 0x0002 ; External Interrupt Request 0
.org INT1addr ;= 0x0004 ; External Interrupt Request 1
rjmp/jmp <ИМЯ твоего обработчика прерывания> ; или reti - если это "заглушка"
;.equ INT2addr = 0x0006 ; External Interrupt Request 2
Код: Выделить всё
ldi r18,0b00100111 ;разрешить прерывание компаратора (TIMSK1)
sts 0x6F,r18
здесь все нормально, за исключением абсолютного адреса а не имени TIMSK1, но это не криминал
просто ты разрешаешь прерывание а оно работать не будет, из-за таблицы векторов, в которой у тебя вектор адресуется сам на себя, т.е. 100% зависание проца.
давай дерзай потом продолжим.


, поэтому прежде чем задавать очередной вопрос прогони прогу в пошаговом режиме, посмотри как меняются значения регистров, а потом задавай вопрос конкретно, а просто "ни чего не работает", к рассмотрению приниматься не будет