Professional Documents
Culture Documents
h> ///
#pragma config FPLLMUL = MUL_20, FPLLIDIV = DIV_2, FPLLODIV = DIV_1
#pragma config POSCMOD = OFF, FNOSC = FRCPLL, FPBDIV = DIV_1, ICESEL = ICS_PGx2
#pragma config FWDTEN = ON, WDTPS = PS262144// 4minute
#pragma config FSOSCEN = OFF // Secondary Oscillator Enable
//#pragma config FWDTEN = ON, WDTPS = PS16384// 16sec.
//#pragma config FWDTEN = ON, WDTPS = PS32768 //32sec.
//#pragma config FWDTEN = ON, WDTPS = PS131072 // 2 minute
//#pragma config FCKSM = CSDCMD // Clock Switching & Fail Safe Clock M
onitor
#define SYS_FREQ (80000000)
#define GetSystemClock() SYS_FREQ
#define GetPeripheralClock() (GetSystemClock()/(1 << OSCCONbits.PBDIV
))
#define GetInstructionClock() (GetSystemClock())
#define DESIRED_BAUDRATE (19200) //The desired BaudRate
#define PB_DIV 1
#define PRESCALE 256
#define TOGGLES_PER_SEC 10 // la 100ms
#define T1_TICK (SYS_FREQ/PB_DIV/PRESCALE/TOGGLES_PER_SEC)
#define const_wait 2
#define const_uart 4
#define LCD_RS LATEbits.LATE4
#define LCD_RW LATEbits.LATE6
#define LCD_EN LATEbits.LATE5
#define LCD_DATA LATE
#define LCD_STROBE() ((LCD_EN = 1), (LCD_EN=0))
#define CONFIG1 (CN_ON | CN_IDLE_CON)
#define PINS1 (CN0_ENABLE | CN1_ENABLE )
#define PULLUPS1 (CN0_PULLUP_ENABLE | CN0_PULLUP_ENABLE)
#define INTERRUPT1 (CHANGE_INT_ON | CHANGE_INT_PRI_2)
#define NVM_PROGRAM_PAGE 0xbd070000
#define adr_CMD NVM_PROGRAM_PAGE
void init_uC (void);
unsigned long tim1;
int main(void)
{
SYSTEMConfig(SYS_FREQ, SYS_CFG_WAIT_STATES | SYS_CFG_PCACHE);
init_uC();
WDTCONSET = 0x8000; // Enable WDT
ClearWDT(); // service the WDT
unsigned int i=0;
while(1)
{
while(i<6)
{
ClearWDT(); // service the WDT
mPORTCToggleBits( BIT_1 ); //
tim1=0; while(tim1<5); // wait here
mPORTEToggleBits( BIT_3 ); //
tim1=0; while(tim1<5);
mPORTDToggleBits( BIT_3 ); //
tim1=0; while(tim1<5);
mPORTDToggleBits( BIT_11 ); //
tim1=0; while(tim1<5);
mPORTFToggleBits( BIT_5 ); //
tim1=0; while(tim1<5);
i++;
}
for(i=0;i<=7;i++)
{
ClearWDT(); // service the WDT
mPORTCToggleBits( BIT_1 ); //
tim1=0; while(tim1<4); // wait here
mPORTEToggleBits( BIT_3 ); //
tim1=0; while(tim1<4);
mPORTDToggleBits( BIT_3 ); //
tim1=0; while(tim1<4);
mPORTDToggleBits( BIT_11 ); //
tim1=0; while(tim1<4);
mPORTFToggleBits( BIT_5 ); //
tim1=0; while(tim1<4);
i++;
}
for(i=0;i<=8;i++)
{
ClearWDT(); // service the WDT
mPORTCToggleBits( BIT_1 ); //
tim1=0; while(tim1<3); // wait here
mPORTEToggleBits( BIT_3 ); //
tim1=0; while(tim1<3);
mPORTDToggleBits( BIT_3 ); //
tim1=0; while(tim1<3);
mPORTDToggleBits( BIT_11 ); //
tim1=0; while(tim1<3);
mPORTFToggleBits( BIT_5 ); //
tim1=0; while(tim1<3);
i++;
}
for(i=0;i<=9;i++)
{
ClearWDT(); // service the WDT
mPORTCToggleBits( BIT_1 ); //
tim1=0; while(tim1<2); // wait here
mPORTEToggleBits( BIT_3 ); //
tim1=0; while(tim1<2);
mPORTDToggleBits( BIT_3 ); //
tim1=0; while(tim1<2);
mPORTDToggleBits( BIT_11 ); //
tim1=0; while(tim1<2);
mPORTFToggleBits( BIT_5 ); //
tim1=0; while(tim1<2);
i++;
}
for(i=0;i<=10;i++)
{
ClearWDT(); // service the WDT
mPORTCToggleBits( BIT_1 ); //
tim1=0; while(tim1<1); // wait here
mPORTEToggleBits( BIT_3 ); //
tim1=0; while(tim1<1);
mPORTDToggleBits( BIT_3 ); //
tim1=0; while(tim1<1);
mPORTDToggleBits( BIT_11 ); //
tim1=0; while(tim1<1);
mPORTFToggleBits( BIT_5 ); //
tim1=0; while(tim1<1);
i++;
}
for(i=0;i<=10;i++)
{
ClearWDT(); // service the WDT
mPORTCToggleBits( BIT_1 ); //
mPORTEToggleBits( BIT_3 ); //
mPORTDToggleBits( BIT_3 ); //
mPORTDToggleBits( BIT_11 ); //
mPORTFToggleBits( BIT_5 ); //
tim1=0; while(tim1<8);
i++;
}
for(i=0;i<=10;i++)
{
ClearWDT(); // service the WDT
mPORTCToggleBits( BIT_1 ); //
mPORTEToggleBits( BIT_3 ); //
mPORTDToggleBits( BIT_3 ); //
mPORTDToggleBits( BIT_11 ); //
mPORTFToggleBits( BIT_5 ); //
tim1=0; while(tim1<7);
i++;
}
for(i=0;i<=11;i++)
{
ClearWDT(); // service the WDT
mPORTCToggleBits( BIT_1 ); //
mPORTEToggleBits( BIT_3 ); //
mPORTDToggleBits( BIT_3 ); //
mPORTDToggleBits( BIT_11 ); //
mPORTFToggleBits( BIT_5 ); //
tim1=0; while(tim1<6);
i++;
}
for(i=0;i<=12;i++)
{
ClearWDT(); // service the WDT
mPORTCToggleBits( BIT_1 ); //
mPORTEToggleBits( BIT_3 ); //
mPORTDToggleBits( BIT_3 ); //
mPORTDToggleBits( BIT_11 ); //
mPORTFToggleBits( BIT_5 ); //
tim1=0; while(tim1<5);
i++;
}
for(i=0;i<=13;i++)
{
ClearWDT(); // service the WDT
mPORTCToggleBits( BIT_1 ); //
mPORTEToggleBits( BIT_3 ); //
mPORTDToggleBits( BIT_3 ); //
mPORTDToggleBits( BIT_11 ); //
mPORTFToggleBits( BIT_5 ); //
tim1=0; while(tim1<4);
i++;
}
for(i=0;i<=14;i++)
{
ClearWDT(); // service the WDT
mPORTCToggleBits( BIT_1 ); //
mPORTEToggleBits( BIT_3 ); //
mPORTDToggleBits( BIT_3 ); //
mPORTDToggleBits( BIT_11 ); //
mPORTFToggleBits( BIT_5 ); //
tim1=0; while(tim1<3);
i++;
}
for(i=0;i<=15;i++)
{
ClearWDT(); // service the WDT
mPORTCToggleBits( BIT_1 ); //
mPORTEToggleBits( BIT_3 ); //
mPORTDToggleBits( BIT_3 ); //
mPORTDToggleBits( BIT_11 ); //
mPORTFToggleBits( BIT_5 ); //
tim1=0; while(tim1<2);
i++;
}
for(i=0;i<=30;i++)
{
ClearWDT(); // service the WDT
mPORTCToggleBits( BIT_1 ); //
mPORTEToggleBits( BIT_3 ); //
mPORTDToggleBits( BIT_3 ); //
mPORTDToggleBits( BIT_11 ); //
mPORTFToggleBits( BIT_5 ); //
tim1=0; while(tim1<1);
i++;
}
for(i=0;i<=10;i++)
{
ClearWDT();
mPORTFToggleBits( BIT_5 ); //
tim1=0; while(tim1<5);// service the WDT
mPORTDToggleBits( BIT_11 );
tim1=0; while(tim1<5);
mPORTDToggleBits( BIT_3 ); //
tim1=0; while(tim1<5);//
mPORTEToggleBits( BIT_3 ); //
tim1=0; while(tim1<5);
mPORTCToggleBits( BIT_1 ); //
tim1=0; while(tim1<5); // wait here
}
for(i=0;i<=14;i++)
{
ClearWDT();
mPORTFToggleBits( BIT_5 ); //
tim1=0; while(tim1<4);// service the WDT
mPORTDToggleBits( BIT_11 );
tim1=0; while(tim1<4);
mPORTDToggleBits( BIT_3 ); //
tim1=0; while(tim1<4);//
mPORTEToggleBits( BIT_3 ); //
tim1=0; while(tim1<4);
mPORTCToggleBits( BIT_1 ); //
tim1=0; while(tim1<4); // wait here
}
for(i=0;i<=15;i++)
{
ClearWDT();
mPORTFToggleBits( BIT_5 ); //
tim1=0; while(tim1<3);// service the WDT
mPORTDToggleBits( BIT_11 );
tim1=0; while(tim1<3);
mPORTDToggleBits( BIT_3 ); //
tim1=0; while(tim1<3);//
mPORTEToggleBits( BIT_3 ); //
tim1=0; while(tim1<3);
mPORTCToggleBits( BIT_1 ); //
tim1=0; while(tim1<3); // wait here
}
for(i=0;i<=20;i++)
{
ClearWDT();
mPORTFToggleBits( BIT_5 ); //
tim1=0; while(tim1<2);// service the WDT
mPORTDToggleBits( BIT_11 );
tim1=0; while(tim1<2);
mPORTDToggleBits( BIT_3 ); //
tim1=0; while(tim1<2);//
mPORTEToggleBits( BIT_3 ); //
tim1=0; while(tim1<2);
mPORTCToggleBits( BIT_1 ); //
tim1=0; while(tim1<2); // wait here
}
for(i=0;i<=20;i++)
{
ClearWDT();
mPORTFToggleBits( BIT_5 ); //
tim1=0; while(tim1<1);// service the WDT
mPORTDToggleBits( BIT_11 );
tim1=0; while(tim1<1);
mPORTDToggleBits( BIT_3 ); //
tim1=0; while(tim1<1);//
mPORTEToggleBits( BIT_3 ); //
tim1=0; while(tim1<1);
mPORTCToggleBits( BIT_1 ); //
tim1=0; while(tim1<1); // wait here
}
}//while
}//main