OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5013|回复: 7

跪求大佬解决两个按键控制计时器显示问题

[复制链接]

1

主题

7

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2018-7-21
在线时间
7 小时
发表于 2018-7-21 08:55:10 | 显示全部楼层 |阅读模式
1金钱
大佬们,我用emwin写的用两个按键分别控制两个计时器,当按下一个按键的时候计时器开始显示数值,但当按下另外一个按键的时候前一个就停止了,只有当关闭后一个前一个才能继续运行,我用的GUI_Delay()这个函数来控制延时时间的,麻烦帮忙解决一下,都困扰差不多一周了,拜托了
case ID_BUTTON_13:
          switch(NCode) {
          case WM_NOTIFICATION_CLICKED:

                break;
           case WM_NOTIFICATION_RELEASED:


                                i = 0;
                               
                                        while(1){
                                               
                                                hItem =WM_GetDialogItem(pMsg->hWin, ID_PROGBAR_3);
                                                PROGBAR_SetFont(hItem, GUI_FONT_16_ASCII);
                                                PROGBAR_SetSkin(hItem,PROGBAR_SKIN_FLEX);               
                                                PROGBAR_SetMinMax(hItem,0, 1000);
                                                                       
                                                PROGBAR_SetValue(hItem,i);
                                                i++;
                                                if(i==1000)
                                                        i = 0;
                                                                       
                                                                       
                                                                       
                                                Count[3]++;
                                                hItem = WM_GetDialogItem(pMsg->hWin,ID_TEXT_31);
                                                Second[3] = (Count[3] % 60);
                                                sprintf(buf3,"%02d", Second[3]);
                                                TEXT_SetText(hItem, (const char *)buf3);
                                               
                                                hItem = WM_GetDialogItem(pMsg->hWin,ID_TEXT_32);
                                                Minute[3] = Count[3] % 3600 / 60;
                                                sprintf(buf3,"%02d", Minute[3]);
                                                TEXT_SetText(hItem, (const char *)buf3);

                                       
                                                hItem = WM_GetDialogItem(pMsg->hWin,ID_TEXT_33);
                                                Hour[3] = Count[3] % (24 * 3600) / 3600;
                                                sprintf(buf3,"%02d", Hour[3]);
                                                TEXT_SetText(hItem, (const char *)buf3);

                                               
                                                hItem = WM_GetDialogItem(pMsg->hWin,ID_TEXT_34);
                                                Day[3] = Count[3]  / (24 * 3600);
                                                sprintf(buf3,"%02d", Day[3]);
                                                TEXT_SetText(hItem, (const char *)buf3);
                                                                       
                                                GUI_Delay(1000);
                                                       
                                        }

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2018-7-12
在线时间
6 小时
发表于 2018-7-21 09:28:34 | 显示全部楼层
case WM_NOTIFICATION_CLICKED:   break;//这里不应该用分支语句吧,用条件语句试试看
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2018-7-21
在线时间
7 小时
 楼主| 发表于 2018-7-21 14:52:31 | 显示全部楼层
随风草 发表于 2018-7-21 09:28
case WM_NOTIFICATION_CLICKED:   break;//这里不应该用分支语句吧,用条件语句试试看

官方手册也是用的分支啊
回复

使用道具 举报

15

主题

172

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1276
金钱
1276
注册时间
2016-5-31
在线时间
499 小时
发表于 2018-7-21 23:14:42 | 显示全部楼层
LZ: 这点问题,对于我来说,就太简单了。
     可以换位思考,就变得简单了。我做过类似的东西。
     请参照我的帖子“emwin 实现触摸按钮长按动作【解决方案】”。
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2018-7-21
在线时间
7 小时
 楼主| 发表于 2018-7-22 08:11:40 | 显示全部楼层
xfcjava3 发表于 2018-7-21 23:14
LZ: 这点问题,对于我来说,就太简单了。
     可以换位思考,就变得简单了。我做过类似的东西。
     请 ...

老哥,刚刚看了你的那篇文章,因为我是刚接触不就,看得不是很明白,所以能不能说说这个思路,我是用两个屏幕按钮独立控制两个计时器,当按下一个它所对应的计时器开始计时,按下另外一个另一个开始计时。麻烦帮个忙
回复

使用道具 举报

15

主题

172

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1276
金钱
1276
注册时间
2016-5-31
在线时间
499 小时
发表于 2018-7-22 19:25:42 | 显示全部楼层
你出1个金币太少了,哈哈!有谁会花大量的时间回复你哪?!
回复

使用道具 举报

15

主题

172

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1276
金钱
1276
注册时间
2016-5-31
在线时间
499 小时
发表于 2018-7-22 19:26:49 | 显示全部楼层
1个金币,领LZ进门就不错了。
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2018-7-21
在线时间
7 小时
 楼主| 发表于 2018-7-23 21:40:36 | 显示全部楼层
xfcjava3 发表于 2018-7-22 19:25
你出1个金币太少了,哈哈!有谁会花大量的时间回复你哪?!

刚注册的,不知道这个啊,默认的,不过我用WM_TIMER解决了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-2 06:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表