初级会员
- 积分
- 110
- 金钱
- 110
- 注册时间
- 2016-9-23
- 在线时间
- 37 小时
|
1金钱
本帖最后由 liuzq71 于 2016-9-30 10:28 编辑
static void _DashboardDemo(void) {
WM_HWIN hClient;
WM_HWIN hWin;
WM_HWIN hButton2;
_Break = 0;
_Break2 = 0;
//
// Use memory devices
//
WM_SetCreateFlags(WM_CF_MEMDEV);
WM_EnableMemdev(WM_HBKWIN);
//
// Set callback for background
//
WM_SetCallback(WM_HBKWIN, &_cbBkWindow);
//
// Create backgrund
//
_CreateBackGround();
hClient = WM_GetClientWindow(WM_HBKWIN);//取客户区句柄
hWin = GUI_CreateDialogBox(_aDialogColor,GUI_COUNTOF(_aDialogColor), &_cbDialogColor, WM_HBKWIN, 0, 0);
hButton2 = _CreateButton(170, 180, 120, 50, 5, 25, "Cancel" , 0 , GUI_ID_BUTTON2);
//
// Handle the demo
//
GUI_CURSOR_Show();
do{
GUI_Exec(); //or GUI_Delay();
LED0=1;
LED1=0;
//GUI_Delay(200);
delay_ms(300);
LED0=!LED0;
LED1=!LED1;
delay_ms(300);
//GUI_Delay(200);
}while(!_Break2);
//
// Unset callback
//
WM_SetCallback(WM_HBKWIN, NULL);
//
// Clear memory
//
WM_DeleteWindow(hWin);
WM_DeleteWindow(hButton2);
}
循环中的2个delay_ms(300)函数好象根本不延时,造成两个LED常亮不闪,啥原因啊?换成GUI_Delay(200)语句后,LED灯闪烁正常,谢
(程序是在原子战舰板的“跑马灯实验(库函数版)”工程的基础上移植STemWin2.8运行正确后,再修改的,无OS。)
|
最佳答案
查看完整内容[请看2#楼]
原来人家早就发现这个问题了:
http://www.openedv.com/posts/list/28620.htm
|