Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс. e-mail:jobsmp@pochta.ru |
Определяем прерывание
#pragma vector = TIMER0_OVF_vect
__interrupt void TIMER0_OVF_Interrupt (void)
{
clrbit (MCUCR, SE);
}
Настраиваем таймер
void TimerInit(void)
{
TCCR0 = (1 << CS00) | (1 << CS01) | (1 << CS02);
TIMSK = 1 << TOIE0;
ASSR = 1 << AS0;
}
Потом уходим в спячку, считая отрезки времени (тут у меня вроде были минуты, надо будет перенастроить таймер на секунды). А с этими отрезками уже делаем что хотим.
for (SleepSecondsCount = 0; SleepSecondsCount <= eeWaitState*8; SleepSecondsCount++)
{
MCUCR = (1<
asm ("sleep");
}
Ответы