OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
12
返回列表 发新帖

求助大神,你能解决算你牛

[复制链接]

3

主题

108

帖子

0

精华

高级会员

Rank: 4

积分
717
金钱
717
注册时间
2014-2-24
在线时间
257 小时
发表于 2017-5-20 12:19:37 | 显示全部楼层
会飞的大白猪 发表于 2017-5-19 21:06
我是想知道。清除中断标志位后,计数器重新计数,重新定时100Ms,也就是100ms后重新触发中断,进入中断服 ...

微机原理没学好吧,多看点书还是有好处的
中断就像车库,你开车进车库,有记录你进来了,但是你被堵在出来的路上,然后你把你进来的记录删除了,但是你还是被堵在车库里是不?这是事实....你清除的只是你进来的记录,但是你没出车库啊,下次你怎么进去?这是掩耳盗铃
一句话,
你见过中断被中断自身打断的吗?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

59

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
360
金钱
360
注册时间
2017-3-9
在线时间
63 小时
发表于 2017-5-20 13:19:35 | 显示全部楼层
会飞的大白猪 发表于 2017-5-20 10:15
别傻了孩子,我就是想测试一下,while才写那里的。别把别人都当傻子

我只能呵呵呵

回复

使用道具 举报

3

主题

33

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1074
金钱
1074
注册时间
2017-1-25
在线时间
38 小时
发表于 2017-5-20 13:32:42 | 显示全部楼层
会飞的大白猪 发表于 2017-5-20 10:17
我在那里写while只是测试,你以为就你厉害呗。看不懂我的想法就别瞎扯,

真的,这论坛,就你最厉害了,大牛你好。我们小白都不懂while怎么用。
回复

使用道具 举报

9

主题

96

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
258
金钱
258
注册时间
2015-12-14
在线时间
50 小时
发表于 2017-5-20 13:38:19 | 显示全部楼层
你这个问题我之前也想过,最后明白了,你看下能不能接受我的观点。清除标志位后,计数器是重新开始计数,但你的中断时100ms进入一次,但是程序执行一行的时间是非常短的,还没等到下次中断,就一直处于while(1)了。
Keep moving,to be NO.1!
回复

使用道具 举报

69

主题

978

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3774
金钱
3774
注册时间
2015-4-26
在线时间
766 小时
发表于 2017-5-20 13:59:10 | 显示全部楼层
会飞的大白猪 发表于 2017-5-19 20:58
我是想知道。清除中断标志位后,计数器重新计数,重新定时100Ms,也就是100ms后重新触发中断,进入中断服 ...

建议你仔细看一下中断那节。中断是有分组的,主优先级、次优先级。主优先级高的可以打断主优先级低的,主优先级一样,中断按发生顺序执行,不会相互打断
我有故事,你有酒吗
回复

使用道具 举报

14

主题

50

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1011
金钱
1011
注册时间
2016-10-28
在线时间
82 小时
发表于 2017-5-20 14:48:00 | 显示全部楼层
别把楼主都当傻子!一语道破天机-----清楚中断标识后,定时器只要到达计时值,就会再次进入中断,这没毛病,那么楼主的情况时清除标志后,一直在while(1),所以下次中断来临时还要在while(1);处一直执行,之后就没有之后了,一直死到这里,因为一进中断就要执行while(1);    这个问题对于深刻理解定时器中断重大作用!!! 请大家正确认识自己的学习态度,学习是用来进步运用的,不是用来作为嘲笑别人的资本的!
回复

使用道具 举报

14

主题

65

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
240
金钱
240
注册时间
2016-8-4
在线时间
71 小时
发表于 2017-5-20 16:31:12 | 显示全部楼层
开仿真,一步一步运行,你会发现,每次都运行到while(1);中了
回复

使用道具 举报

6

主题

115

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1027
金钱
1027
注册时间
2015-6-1
在线时间
126 小时
发表于 2017-5-20 17:24:27 | 显示全部楼层
就像,你在工作中,接到了一个电话,你接听了但一直没有挂断,那还能接到别的电话吗。
回复

使用道具 举报

24

主题

695

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1666
金钱
1666
注册时间
2016-4-29
在线时间
266 小时
发表于 2017-5-20 18:45:19 | 显示全部楼层
楼主,探索精神可佳,我支持你,做技术的就是要有这种好奇心和求知欲
回复

使用道具 举报

16

主题

204

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1953
金钱
1953
注册时间
2015-7-5
在线时间
493 小时
发表于 2017-5-20 19:28:10 | 显示全部楼层
搞笑
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
3
金钱
3
注册时间
2017-5-20
在线时间
0 小时
发表于 2017-5-20 20:03:59 来自手机 | 显示全部楼层
举个例子,在走路时,掉到坑里了(把它看做中断),我们需要的是从坑里爬出来,继续走路,而你这个程序的意思是掉到坑里之后,什么都不要做,所以你出不了当前这个坑,也掉不到下一个预定的坑里
回复

使用道具 举报

8

主题

53

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
399
金钱
399
注册时间
2016-11-14
在线时间
51 小时
发表于 2017-5-20 21:08:40 | 显示全部楼层
神人66666
回复

使用道具 举报

1

主题

101

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2017-5-10
在线时间
55 小时
发表于 2017-5-21 01:55:06 来自手机 | 显示全部楼层
因为while(1);相当于一直停在中断处理函数里面,那么自己的中断不可能形成嵌套即使发生了中断也自然只能等待第一个定时器中断执行完所以卡住了。再就是希望不要发表一些zz言论之后再说自己是钓鱼的这只会让别人觉得你就是个zz。
回复

使用道具 举报

17

主题

354

帖子

0

精华

高级会员

Rank: 4

积分
797
金钱
797
注册时间
2017-5-21
在线时间
340 小时
发表于 2017-5-21 09:41:50 来自手机 | 显示全部楼层
你在中断里增加一个代码cnt++;if(cnt =1){print(cnt);wihle(1);}else{print(cnt);}这样你就知道在中断里清除标志能不能再次进来了。
回复

使用道具 举报

17

主题

354

帖子

0

精华

高级会员

Rank: 4

积分
797
金钱
797
注册时间
2017-5-21
在线时间
340 小时
发表于 2017-5-21 09:45:11 来自手机 | 显示全部楼层
手机打代码容易出错,if里应该是两个等于号
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-8-21 03:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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