发新帖我要提问
12
返回列表
打印
[51单片机]

关于在定时器中断里面调用函数的问题

[复制链接]
楼主: daocaorenchao
手机看帖
扫描二维码
随时随地手机跟帖
21
xlsbz| | 2014-3-13 21:21 | 只看该作者 回帖奖励 |倒序浏览
你把key_deal放到while里面就好了。不要调用。

使用特权

评论回复
22
daocaorenchao|  楼主 | 2014-3-14 10:23 | 只看该作者
ayb_ice 发表于 2014-3-13 10:52
中断里有时调用函数
pulse_BZ1(3000);
这个函数开销太大,可能会超50MS,会导致中断一退出又进入中断

首先说,代码是在别人能够正常使用的情况下弄过来的,所以代码是能正常使用的,别人也是用中断来访问,正常;其次,说的那个延时,我全部删掉了还是不能正常运行,即使我把中断间隔时间加长,说明这不是关于在处理函数的时候又来中断了这个问题;最后,还是谢谢..

使用特权

评论回复
23
daocaorenchao|  楼主 | 2014-3-14 10:23 | 只看该作者
xlsbz 发表于 2014-3-13 21:04
我以前理解的关于using的。有空你可以瞅瞅

至于你的其他问题。你自己帮自己吧

谢谢...

使用特权

评论回复
24
daocaorenchao|  楼主 | 2014-3-14 10:24 | 只看该作者
xlsbz 发表于 2014-3-13 21:21
你把key_deal放到while里面就好了。不要调用。

放到大循环一直没有问题...

使用特权

评论回复
25
ayb_ice| | 2014-3-14 11:23 | 只看该作者
daocaorenchao 发表于 2014-3-14 10:23
首先说,代码是在别人能够正常使用的情况下弄过来的,所以代码是能正常使用的,别人也是用中断来访问,正 ...

别人能用,你为什么不行呢

使用特权

评论回复
26
xlsbz| | 2014-3-15 08:12 | 只看该作者
重写一个

使用特权

评论回复
27
很忙| | 2014-3-15 11:25 | 只看该作者
中断里面最好不要用循环。如果中断没有处理完又来中断了那就问题大了。

使用特权

评论回复
28
杰杰21c| | 2014-3-15 12:46 | 只看该作者
dwh000 发表于 2014-3-12 10:29
以前遇到过这个情况.把自己的经验和理解说说.
c语言中断最好不要切换寄存器工作组,因为中断中很多时候会用 ...

嗯嗯,学习了

使用特权

评论回复
29
杰杰21c| | 2014-3-15 12:46 | 只看该作者
很忙 发表于 2014-3-15 11:25
中断里面最好不要用循环。如果中断没有处理完又来中断了那就问题大了。

要是死循环就没救了,哈哈

使用特权

评论回复
30
xyz549040622| | 2014-3-15 15:33 | 只看该作者
一直加一说明你按键判断那里出错了,按一下下方向键后,一直认为是按下的
                         //{
                         return(Key_Down);
                         //pulse_BZ(200,3,5);               
                         numcheck=KEY1;
                         ///while(KEY1=1){;}
不清楚你的逻辑关系,但是第一次见return后面还有语句的。。。这里的Bug吧

使用特权

评论回复
31
xyz549040622| | 2014-3-15 15:34 | 只看该作者
建议你一直判断下方向按下的函数里放个LED看看,是否是长亮的,估计你那里的问题

使用特权

评论回复
32
oyangsaio| | 2014-3-17 12:22 | 只看该作者
你中断里面用延时?
有问题呀

使用特权

评论回复
33
daocaorenchao|  楼主 | 2014-3-18 13:52 | 只看该作者
oyangsaio 发表于 2014-3-17 12:22
你中断里面用延时?
有问题呀

没有问题的,只要把握好,是可以用的,我把函数整合在一起就好了,现在问题应经解决了...谢谢...

使用特权

评论回复
34
123456make| | 2016-7-16 09:28 | 只看该作者
我也遇到了这样的毛病,不过看了这些回帖学习了,哈哈

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则