#include <p18f4520.h>
#include <delays.h>
#pragma config OSC = HS
#pragma config WDT = OFF
#pragma config LVP = OFF
int i, key, previous;
unsigned char PBState=1; /*State of the Push Button*/
void flashing(void); /*Declaring flashing function*/
/*Flashing Mode*/
void flashing(void)
{
for(i=0;i<1;i++)
{
LATCbits.LATC2 = 1;
Delay10KTCYx(10);
LATCbits.LATC2 = 0;
Delay10KTCYx(10);
LATDbits.LATD1 = 1;
Delay10KTCYx(10);
LATDbits.LATD1 = 0;
Delay10KTCYx(10);
LATDbits.LATD3 = 1;
Delay10KTCYx(10);
LATDbits.LATD3 = 0;
Delay10KTCYx(10);
LATDbits.LATD5 = 1;
Delay10KTCYx(10);
LATDbits.LATD5 = 0;
Delay10KTCYx(10);
LATDbits.LATD3 = 1;
Delay10KTCYx(10);
LATDbits.LATD3 = 0;
Delay10KTCYx(10);
LATDbits.LATD1 = 1;
Delay10KTCYx(10);
LATDbits.LATD1 = 0;
Delay10KTCYx(10);
}
}
/*Main Function*/
void main(void)
{
/*Settings*/
ADCON1=7;
TRISB=0b00000001;
TRISD=0b00000000;
TRISA=0b00010000;
TRISC=0b00000000;
/*Initializing*/
key=0;
PBState=1;
while(1)
{
previous=key; /*Copy the last value*/
key=PORTAbits.RA4; /*Assigning new value*/
Delay10KTCYx(1); /*Delay*/
/*Push Button RA4 Function ON Button*/
if(key==0 && previous==1) /*Getting information*/
{
Delay10KTCYx(1); /*Delay again*/
if(PBState==0) /*Changing the PBState*/
{
PBState=1;
}
else
{
PBState=0;
}
}
switch (PBState) /*Switch function for cases*/
{
case 0:
flashing(); /*If case 0, run the flashing()*/
break;
case 1: /*If case 1, do nothing*/
break;
default:
break;
}
}
}