//Això ho puc trobar al p30F6013A.h
_FOSC(CSW_FSCM_OFF & XT_PLL4);//Clock switching and Monitor Disable & XT w/PLL 8x // 10MHZ * 4/4 = 10MIPS
_FWDT(WDT_OFF); //Watchdog Disabled
_FBORPOR(MCLR_EN & PBOR_OFF & PWRT_OFF); //PBOR Disable & MasterClear Enable
_FGS (GSS_OFF & GWRP_OFF); //No protección del codigo
////******************* DEFINICIONS ********************************************/////
#define LED PORTGbits.RG12
////*******************FI DEFINICIONS ********************************************/////
void __attribute__((__interrupt__, no_auto_psv)) _T1Interrupt(void)
{
//entro aquí quan hi ha overflow, segons el q posi al Write hi arribarà abans o després.
IFS0bits.T1IF = 0; //baixo el flag de l'interrupcó del Timer1
LED = ~LED;
WriteTimer1(0xEC77); // hauria de ser cada 1ms.
return;
}
void ConfiguracioTimer(){
//configuració de timer - mostreig a 11025Hz
ConfigIntTimer1(T1_INT_PRIOR_1 & T1_INT_ON); //configuro el timer com a prioritat 1 & Interrupt Enable
WriteTimer1(0); //valor que poso el Timer
OpenTimer1(T1_ON & T1_GATE_OFF & T1_IDLE_STOP & T1_PS_1_1 & T1_SYNC_EXT_OFF & T1_SOURCE_INT, 1335); //0xFFFF
// Timer1 ON & Timer Gate time accumulation disabled & Prescaler 1:1 & Do not synch external clk input & Internal clock source
}
void inicialitza (void){
TRISGbits.TRISG12 = 0; //poso el RG12 com a sortida.
ConfiguracioTimer(); //inicialitzem el Timer
ADCInit ();
}
int main(void)
{
inicialitza ();
while (1){
}
return 0;
}