Здравствуйте!
Сразу скажу, что я новичок в этом деле.... ))) Научите пожалуйста )))
МК Атмега8. Отправляю в спящий режим.
НО, пробудить не получается его и с таймера, ни с прерывания INT0.
Вроде все регистры правильно расставил, а он не пробуждается.
Если можете, то напишите кусок исходника. Вообще интересует, что бы пробуждался от таймера.
Мой кусок исходника:
// External Interrupt(s) initialization
// INT0: On
// INT0 Mode: Low level
// INT1: Off
GICR|=0x40;
MCUCR=0xA0; // 1010 0000
GIFR=0x40;
PORTB.1=1;
delay_ms(200);
PORTB.1=0;
delay_ms(200);
#asm("cli")
#asm("sleep")
#asm("sei") }
Как его разбудить по переполнению таймера? например, я запустил МК, мигнул светодиодом и спать. А через 1 минуту таймер его разбудил и он вполнил код и опять уснул?
Спящий режим ATmega8
- Реклама
Re: Спящий режим ATmega8
SEI и CLI поменяйте местами.
-
SergeiSam
- Первый раз сказал Мяу!
- Сообщения: 24
- Зарегистрирован: Вс фев 18, 2007 14:09:34
- Откуда: Воронеж
- Контактная информация:
Re: Спящий режим ATmega8
Спасибо, помогло!akl писал(а):SEI и CLI поменяйте местами.
Re: Спящий режим ATmega8
А какой командой настроить ATmega8 на power down?
Не променяю медь на ржавую несгорайку!
Re: Спящий режим ATmega8
А в даташит заглянуть?
- Реклама
Re: Спящий режим ATmega8
Там команда то одинаковая, для всех режимов сна, а конкретный режим будет зависеть от того, какие биты в служебных регистрах были установлены. Надежнее всего действительно в даташите посмотреть, для конкретной АТмеги.


