00001 /************************************************** 00002 * led driver 00003 * Function: Driver for led display 00004 * 00005 * File: led.c 00006 * Author: Book Chen 00007 * 2008.08.08 00008 **************************************************** 00009 */ 00010 #include "..\inc\includes.h" 00011 #include "..\os_core\os_includes.h" 00012 00013 #define Led0OnState 0 00014 #define Led1OnState 1 00015 #define Led2OnState 2 00016 #define Led3OnState 3 00017 00018 #define cLedOn 0 00019 #define cLedOff 1 00020 00021 sbit Led0=P1^4; 00022 sbit Led1=P1^5; 00023 sbit Led2=P1^6; 00024 sbit Led3=P1^7; 00025 00026 struct LED_CONTROL LedCtrl; 00027 void F_LedPowerOnInit(void) LargeReentrant; 00028 void F_LedSvc(void) LargeReentrant; 00029 00030 void F_LedPowerOnInit(void) LargeReentrant{ 00031 LedCtrl.State=Led0OnState; 00032 LedCtrl.Timer=100; 00033 } 00034 void F_LedSvc(void) LargeReentrant{ 00035 LedCtrl.Timer=20; 00036 LedCtrl.State++; 00037 if(LedCtrl.State>3) LedCtrl.State=0; 00038 switch(LedCtrl.State){ 00039 case Led0OnState: 00040 Led0=cLedOn; 00041 Led1=cLedOff; 00042 Led2=cLedOff; 00043 Led3=cLedOff; 00044 break; 00045 case Led1OnState: 00046 Led0=cLedOff; 00047 Led1=cLedOn; 00048 Led2=cLedOff; 00049 Led3=cLedOff; 00050 break; 00051 case Led2OnState: 00052 Led0=cLedOff; 00053 Led1=cLedOff; 00054 Led2=cLedOn; 00055 Led3=cLedOff; 00056 break; 00057 case Led3OnState: 00058 Led0=cLedOff; 00059 Led1=cLedOff; 00060 Led2=cLedOff; 00061 Led3=cLedOn; 00062 break; 00063 default: 00064 break; 00065 } 00066 } 00067