Страница 1 из 1

Спящий режим ATmega8

Добавлено: Чт фев 09, 2012 23:25:05
SergeiSam
Здравствуйте!
Сразу скажу, что я новичок в этом деле.... ))) Научите пожалуйста )))
МК Атмега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 минуту таймер его разбудил и он вполнил код и опять уснул?

Re: Спящий режим ATmega8

Добавлено: Пт фев 10, 2012 02:35:45
akl
SEI и CLI поменяйте местами.

Re: Спящий режим ATmega8

Добавлено: Вс фев 12, 2012 00:05:47
SergeiSam
akl писал(а):SEI и CLI поменяйте местами.
Спасибо, помогло!

Re: Спящий режим ATmega8

Добавлено: Пт апр 06, 2012 23:01:07
Upgrader
А какой командой настроить ATmega8 на power down?

Re: Спящий режим ATmega8

Добавлено: Сб апр 07, 2012 12:57:20
Flasher
А в даташит заглянуть?

Re: Спящий режим ATmega8

Добавлено: Сб апр 07, 2012 13:08:05
SmarTrunk
Там команда то одинаковая, для всех режимов сна, а конкретный режим будет зависеть от того, какие биты в служебных регистрах были установлены. Надежнее всего действительно в даташите посмотреть, для конкретной АТмеги.