00001
00002
00003
00004
00005
00006 #include "piccolo_all.h"
00007 #include "delays.h"
00008
00032 typedef enum {
00033 WAIT_FOR_PRESS,
00034 WAIT_FOR_RELEASE
00035 } STATE12;
00036
00037 #define SW1_PRESSED() SW1==0 //lenyomott állapot feltétele
00038 #define SW1_RELEASED() SW1==1 //felengedett állapot feltétele
00039
00044 void delay_ms(unsigned int d) {
00045 unsigned int i;
00046 for(i=0; i<d; i++) {
00047 Delay1KTCYx(12);
00048 }
00049 }
00050
00051
00052 void main(void) {
00053 STATE12 status;
00054 unsigned char c=25;
00055 mInitAllLEDs();
00056 mInitSwitch1();
00057 status=WAIT_FOR_PRESS;
00058 while (1) {
00059
00060 switch(status) {
00061 case WAIT_FOR_PRESS:
00062 if(SW1_PRESSED()) {
00063 mLED_1_Toggle();
00064 status=WAIT_FOR_RELEASE;
00065 }
00066 break;
00067 case WAIT_FOR_RELEASE:
00068 if(SW1_RELEASED()) {
00069 status=WAIT_FOR_PRESS;
00070 }
00071 break;
00072 }
00073
00074 if(--c==0) {
00075 mLED_4_Toggle();
00076 c=25;
00077 }
00078 delay_ms(20);
00079 }
00080 }