00001
00002
00003
00004
00005
00006 #include "piccolo_all.h"
00007 #include "delays.h"
00008
00009 char c;
00010
00024
00025 void initIOC(void) {
00026 #if defined(__18F4550)
00027 TRISB=0xFF;
00028 INTCON2bits.RBPU=0;
00029 c = PORTB;
00030 INTCONbits.RBIF=0;
00031 INTCON2bits.RBIP=0;
00032 INTCONbits.RBIE=1;
00033 #elif defined(__18F14K50)
00034 IOCAbits.IOCA3=1;
00035 c = PORTA;
00036 INTCONbits.RABIF=0;
00037 INTCON2bits.RABIP=0;
00038 INTCONbits.RABIE=1;
00039 #endif
00040 }
00041
00043 void clearIOCflag(void) {
00044 #if defined(__18F4550)
00045 c=PORTB;
00046 INTCONbits.RBIF=0;
00047 #elif defined(__18F14K50)
00048 c=PORTA;
00049 INTCONbits.RABIF=0;
00050 #endif
00051 }
00052
00057 void delay_ms(unsigned int d) {
00058 unsigned int i;
00059 for(i=0; i<d; i++) {
00060 Delay1KTCYx(12);
00061 }
00062 }
00063
00064
00065 void main(void) {
00066 unsigned int i;
00067 mInitAllLEDs();
00068 mInitSwitch1();
00069 RCONbits.IPEN=1;
00070 INTCONbits.GIEL=0;
00071 initIOC();
00072
00073 while (1) {
00074 for(i=0; i<20; i++) {
00075 delay_ms(250);
00076 mLED_1_Toggle();
00077 }
00078 clearIOCflag();
00079 mLED_1_Off();
00080 Sleep();
00081 Nop();
00082 }
00083 }
00084