OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子全套STM32/FPGA开发资料,上千讲STM32视频教程,RT1052教程免费下载啦...
查看: 414|回复: 5

显示屏界面切换问题

[复制链接]

  离线 

35

主题

502

帖子

0

精华

高级会员

Rank: 4

积分
852
金钱
852
注册时间
2018-3-27
在线时间
306 小时
发表于 2018-7-13 11:36:22 | 显示全部楼层 |阅读模式
5金钱
两个界面之间通过按键切换(外部中断里面实现操作)
界面一我用TIM3做了一个动态显示(延时150ms切换一次显示,实现动态流动的效果)
通过按键从界面一切换到界面二时
1.当定时器中断优先级高于外部中断优先级时,界面二有时会有界面一动态显示的部分(外部中断打断定时器中断后(这里我失能了定时器中断),还是会回到定时器中断继续操作)
2.当定时器中断优先级低于外部中断优先级时,界面一切换到界面二时会不灵敏(外部中断不能打断定时器中断)


界面二切换到界面一没问题。
请问我应该怎么实现这两个界面之间的切换?

最佳答案

查看完整内容[请看2#楼]

很笨的方法,每条语句都加一个判断:按键外部中断优先级高于定时器中断优先级,这样即使按键打断了定时器中断,程序回来时也不会执行 if(zhu == 0)LCD_Clear(70,73,74,78,WHITE); if(zhu == 0)LCD_Clear(78,81,74,78,WHITE); if(zhu == 0)LCD_Clear(86,89,74,78,WHITE);
回复

使用道具 举报

  离线 

35

主题

502

帖子

0

精华

高级会员

Rank: 4

积分
852
金钱
852
注册时间
2018-3-27
在线时间
306 小时
 楼主| 发表于 2018-7-13 11:36:23 | 显示全部楼层
很笨的方法,每条语句都加一个判断:按键外部中断优先级高于定时器中断优先级,这样即使按键打断了定时器中断,程序回来时也不会执行
if(zhu == 0)LCD_Clear(70,73,74,78,WHITE);
if(zhu == 0)LCD_Clear(78,81,74,78,WHITE);
if(zhu == 0)LCD_Clear(86,89,74,78,WHITE);

回复

使用道具 举报

  离线 

516

主题

9万

帖子

31

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
134732
金钱
134732
注册时间
2010-12-1
在线时间
1316 小时
发表于 2018-7-14 02:11:39 | 显示全部楼层
你现在实现了么?
回复

使用道具 举报

  离线 

35

主题

502

帖子

0

精华

高级会员

Rank: 4

积分
852
金钱
852
注册时间
2018-3-27
在线时间
306 小时
 楼主| 发表于 2018-7-16 09:16:31 | 显示全部楼层

没呢,原子哥
回复

使用道具 举报

  离线 

5

主题

171

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
409
金钱
409
注册时间
2018-7-19
在线时间
104 小时
发表于 2018-7-23 17:33:28 | 显示全部楼层
如果只是为了解决问题完全可以把按键判断不用外部中断,直接轮训方式检测就可以了。
如果要是就想用这两个中断的话,外部中断必须优先级最高,而且时间把握要很好,感觉不现实。除非MCU有这样一个功能就是可以立即结束本次中断子程序的执行。
楼主换个方案把
回复

使用道具 举报

  离线 

35

主题

502

帖子

0

精华

高级会员

Rank: 4

积分
852
金钱
852
注册时间
2018-3-27
在线时间
306 小时
 楼主| 发表于 2018-7-24 08:06:37 | 显示全部楼层
坐看风 发表于 2018-7-23 17:33
如果只是为了解决问题完全可以把按键判断不用外部中断,直接轮训方式检测就可以了。
如果要是就想用这两个 ...

谢谢你!已经解决了
回复

使用道具 举报

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

本版积分规则




关闭

正点原子双11大促销上一条 /1 下一条

正点原子公众号

QQ|联系我们|手机版|官方淘宝店|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-11-16 20:34

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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