友坚的开发板wince6.0的BSP包驱动目录下有一个文件NLED,只需要做简单的修改就可以实现LED灯闪。
首先将//#define NLED_SUPPORT FALSE改为
#define NLED_SUPPORT 1 支持LED灯
其次将 NLED_Thread函数中的
//gLEDTimeout = INFINITE;
//gLEDEvent = CreateEvent(NULL,FALSE,FALSE,NULL);改成
gLEDTimeout = 250;
gLEDEvent = CreateEvent(NULL,FALSE,TRUE,NULL);至于为什么需要这么改,需要以后研究才能知道
然后在配置需要控制IO管脚的相应寄存器
if (LED_Blink == TRUE)
v_pIOPregs->GPBDAT &= ~(0x1 << 9);//选择GPB9
else
v_pIOPregs->GPBDAT |= (0x1 << 9);
,注意需要在NLedDriverInitialize函数中,将GPB9配置为输出管脚。
就这样就可以实现LED灯闪了。至于闪烁时间如何控制,占时还不知道
还需要添加注册表信息,在platform.bib中添加
IF BSP_NONLED !
nleddrvr.dll $(_FLATRELEASEDIR)\nleddrvr.dll NK SHK
ENDIF ; BSP_NONLED !
在platform.reg中添加
; @CESYSGEN IF CE_MODULES_NLEDDRVR
#include "$(DRIVERS_DIR)\nleddrvr\nleddrvr.reg"
; @CESYSGEN ENDIF CE_MODULES_NLEDDRVR
然后重新编译工程文件,就可以实现功能了