#define KEIL #define T0INT 0x20 #include #include #include #include "IO.H" #include "INT.H" int a; void IO_vInit(void) { /// P8.0 .. P8.7 switch on standard TTL input levels /// P7.0 .. P7.7 switch on standard TTL input levels /// P3.8 .. P3.15 switch on standard TTL input levels /// P3.0 .. P3.7 switch on standard TTL input levels /// P2.8 .. P2.15 switch on standard TTL input levels /// P2.0 .. P2.7 switch on standard TTL input levels _PICON = 0x0000; P2 = 0x00FF; // set port data register ODP2 = 0x0000; // set port open drain control register DP2 = 0x00FF; // set port direction register } void CC1_vInit(void) { /// ---- Timer 0 Configuration ------------- /// timer 0 works in timer mode /// prescaler factor is 8 /// ---- Timer 1 Configuration ------------- /// timer 1 works in timer mode /// prescaler factor is 8 /// timer 1 run bit is reset T01CON = 0x0000; T0 = 0x0000; // load timer 0 register T1 = 0x0000; // load timer 1 register T0REL = 0x0000; // load timer 0 reload register T1REL = 0x0000; // load timer 1 reload register /// enable timer 0 interrupt /// timer 0 interrupt priority level(ILVL) = 15 /// timer 0 interrupt group level (GLVL) = 0 T0IC = 0x007C; /// use PEC channel 4 for timer 0 interrupt /// - normal interrupt /// - word transfer /// - pointers are not modified PECC4 = 0x0000; /// enable CC15 interrupt /// CC15 interrupt priority level(ILVL) = 15 /// CC15 interrupt group level (GLVL) = 1 CC15IC = 0x007D; /// use PEC channel 5 for CC15 interrupt /// - normal interrupt /// - word transfer /// - pointers are not modified PECC5 = 0x0000; /// timer 0 is running T01CON |= 0x0040; } void set_port() { if(a<10){P2=0x00FF;} if(a>10){P2=0x0000;} if(a==20){a=0;} } void main() { // initializes the IO ports IO_vInit(); // initializes the external interrupts INT_vInit(); // initializes the CAPCOM 1 peripheral CC1_vInit(); // globally enable interrupts IEN = 1; //------------------------------------------------------------------------------------------- // while(1) { set_port(); }; } void CC1_viIsrTmr0(void) interrupt T0INT { a++; }