#include <htc.h>
#define _XTAL_FREQ 4000000
__CONFIG(0x0feb);//(MCLRDIS |WDTDIS | UNPROTECT);
//Macros
#define DURATION 37//1200//28800 60sec * 60min=3600 sec /hour , counting every 1.5secs --> 3600/1.5=2400
//Global Variables
unsigned char i=0;
unsigned char Mode=0;
unsigned int tmCnter;
void main()
{
OSCCAL=0b00001010;
OPTION=0b00000000;
TRIS =0b00000001;
Mode=1;
if(GPWUF)
{
GPWUF=0;
}
else
{
tmCnter=0;
}
GPIO=0x04;
__delay_ms(100);
TRIS=0x01;
__delay_ms(5);
GPIO=0;
tmCnter++;
while(1)
{
tmCnter++;
__delay_ms(100);
if(tmCnter>5 && tmCnter<10)
{
__delay_ms(100);
i=GPIO;
#asm
sleep
#endasm
}
else if(tmCnter>10)
{
GPIO=0x04;
__delay_ms(50);
GPIO=0x00;
__delay_ms(50);
}
// if(!(GPIO & 0x01))
// {
// Mode=2;
// tmCnter=0; //Clear the timer when the tilt switch pressed
// }
// if(tmCnter>DURATION) //Wait or 12hrs
// {
// Mode=2; //after 12hrs change the mode to 2
//
// }
//
//
// switch (Mode)
// {
//
// case 1:
// TRIS=0x01;
// GPIO=0x0F;
// __delay_ms(20);
// GPIO=0x00;
//
// tmCnter++;
// TRIS=0x03;
// #asm
// sleep
// #endasm
//// for(i=15; i>0; i--)
//// {
//// __delay_ms(100);
//// }
// break;
// case 2:
// GPIO=0x0F;
// __delay_ms(10);
// GPIO=0x00;
// __delay_ms(150);
// GPIO=0x0F;
// __delay_ms(10);
// GPIO=0x00;
// for(i=15; i>0; i--)
// __delay_ms(100);
// break;
//
//
// }//End Switch
}//End while(1)
}//End Main
//}