реклама на сайте
подробности

 
 
> Спящий режим ATMega 128
Lazin
сообщение Apr 16 2007, 13:12
Сообщение #1





Группа: Новичок
Сообщений: 6
Регистрация: 16-04-07
Пользователь №: 27 083



Плата на базе ATMega128 должна при отключении питания работать от аккумулятора. В принципе ничего сложного, нужно завести сигнал наличия внешнего питания на какой нибудь INT, засыпать и просыпаться по нему. Проблема в том, что контроллер выполняет помимо всего прочего еще и ф-ию RTC. Выглядит это так:

Код
#define TIMER0_CLK 0x5

//TIMER0 initialisation - prescale:1024
// WGM: Normal
// desired value: 100Hz
// actual value: 100.160Hz (0.2%)

void timer0_init(void)
{        
TCCR0=0x00; //stop
ASSR=0x00; //set async mode
TCNT0=0xC0; //set count
OCR0=0x40;
TCCR0=TIMER0_CLK; //start timer
}

//call this routine to initialise all peripherals
void init_devices(void)
{          
CLI();
XDIV=0x00;
XMCRA=0x00;
port_init();
timer0_init();
timer1_init();
uart0_init();
spi_init();

MCUCR = 0x00;
EICRA = 0x00;
EICRB = 0x00;
EIMSK = 0x00;
TIMSK = 0x05;
ETIMSK=0x20;// - timer 3 capture -
SEI();
}
unsigned char tcnt0 = 0;
unsigned char led = 0;

//код прерывания - моргает светодиодом и считает время
#pragma interrupt_handler timer0_ovf_isr:17
void timer0_ovf_isr(void){            
    tcnt0++;
    if(tcnt0 == 225){
        tcnt0=0;
        if(led){
         led=0;
         PORTB=PINB&0xEF;
        }
        else{
         led=1;
         PORTB=PINB|0x10;
         time_change ();//ф-я обновления времени
        }
    }
}

При такой реализации RTC, нужно просыпаться по прерыванию от таймера 0 и считать время, затем опять засыпать, но я не знаю какой из спящих режимов сюда подойдёт, и можно ли вообще так делать. Буду рад любой помощи. Заранее спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Lazin
сообщение Apr 16 2007, 15:17
Сообщение #2





Группа: Новичок
Сообщений: 6
Регистрация: 16-04-07
Пользователь №: 27 083



Спасибо. Разобрался.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 23:32
Рейтинг@Mail.ru


Страница сгенерированна за 0.01355 секунд с 7
ELECTRONIX ©2004-2016