Ув. vitalik_1984, Вам GP1 уже предлагал сравнить даташит и Ваш код, должно быть примерно так:vitalik_1984 писал(а):GP1 писал(а):vitalik_1984 писал(а):в даташите написано
Table 9-2. Interrupt 0 Sense Control
ISC01 ISC00 Description
0 0 The low level of INT0 generates an interrupt request.[/list]
0 1 Any logical change on INT0 generates an interrupt request.
1 0 The falling edge of INT0 generates an interrupt request.
1 1 The rising edge of INT0 generates an interrupt request.[/list]Код: Выделить всё
cbit MCUCR,(1<<PUD)|(1<<ISC01)|(1<<ISC00) ;подтяжка портов включена
а теперь сравни
да это я уже в процессе запуска по разному пробовал.
работает только этот вариант, но он в мою конструкцию никак не подходит.
а в студии второй пункт вообще(0 1 Any logical change on INT0) подписан как Резерв!![]()
кому верить?
я понимаю, что пожно по другому прерыванию активировать, но у него приоритет ниже чем у ИНТ0 и через ИНТ0 прерывание можно из сна пробуждать насколько я понял.
Код: Выделить всё
outi SPL, low(RAMEND) ;инициализация стека
cbit MCUCR, (1<<PUD)|(1<<ISC01)|(1<<ISC00) ;подтяжка портов включена, здесь ИНТ0 по Низкому уровню, это можно было и не делать, т.к. по сбросу получается тоже самое
sbit MCUCR, (1<<SE) |(1<<ISC00) ;Активация режима сна и включение ISC00, теперь ИНТ0 будет по Любому уровню, а режим сна Idle
outi GIMSK, 0x40И где Вы увидели "а в студии второй пункт вообще(0 1 Any logical change on INT0) подписан как Резерв!
"?Из режима Idle можно выходить по любому внешнему и внутреннему прерыванию, а из режима Power Down только по низкому уровню, длительностью не менее времени пробуждения микроконтроллера, для ATINY13 это 6 тактов.