Oi
Eu fiz a seguinte configuração para o Alarme do RTC gerar uma interrupção a cada 5 segundos:
Dentro do main:
/**************************************************************************************************/
//Definições para o uso do RTC
/**************************************************************************************************/
Inicializa_RTC ();
Start_RTC ();
ALSEC = 5;
ILR = 2;
AMR = 1; //Compara com segundos
CIIR = 1;
HOUR = 0x00;
MIN = 0x00;
SEC = 0x00;
DOM = 0x00;
MONTH = 0x00;
YEAR = 0x00;
VICVectAddr6 = (unsigned)isr_RTC;//Set the timer ISR vector address (prioridade 5)
VICVectCntl6 = 0x0000002D; //Set channel (prioridade 5)
/**************************************************************************************************/
/**************************************************************************************************/
//Habilita os vetores de interrupções do Capture Mode, Timer1, e AD end Conversion pag 59
VICIntEnable = 0x00002030; //0x00000010; -> Capture Mode
//0x00000020; -> Timer1
//0x00040000; -> AD end Conversion
//0x00008000; -> interrupção externa
//0x00002000; -> RTC
/**************************************************************************************************/
na interrupção:
void isr_RTC (void) __irq {
SEC = 0x00;
ILR = 2;
if (Var) {
output_low(Rele1);
Var=0;
}
else {
output_high(Rele1);
Var=1;
}
//ILR=3;
VICVectAddr = 0x00000000; //Dummy write to signal end of interrupt
}
Mas de jeito nenhum a coisa funciona.
Alguem sabe porque?
Obrigado