打印
[国产单片机]

单片机中断问题

[复制链接]
1105|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
请教:在使用合泰芯片的定时器中断时候,当把bit_LED放到中断中直接去点亮则亮,当把它放到中断计时20ms到了的if语句中则一直都不会亮,貌似中断只能进去一次,初始化的参数设置应该没有问题,如图片程序,求分析可能是什么原因导致的,有没有可能是硬件原因?

1.PNG (14.66 KB )

1.PNG

2.PNG (17.52 KB )

2.PNG

相关帖子

沙发
NE5532| | 2016-9-11 16:29 | 只看该作者
你把“亮”改成“翻转”,很快就能找到问题了。

使用特权

评论回复
板凳
皈依| | 2016-9-11 16:52 | 只看该作者
楼上说的有道理~哈哈 都没问题,是想的和写的没对上

使用特权

评论回复
地板
bright世界|  楼主 | 2016-9-11 19:09 | 只看该作者
NE5532 发表于 2016-9-11 16:29
你把“亮”改成“翻转”,很快就能找到问题了。

额,没太看明白。亮改成翻转?是让我改成方波驱动么?

使用特权

评论回复
5
phphhhncn| | 2016-9-11 23:48 | 只看该作者
取反

使用特权

评论回复
6
bright世界|  楼主 | 2016-9-12 08:38 | 只看该作者

可是我的硬件原理图上就是用高电平去驱动8050然后点亮LED的。取反原理上不合逻辑。。。

使用特权

评论回复
7
NE5532| | 2016-9-12 08:48 | 只看该作者
那我给楼主翻译一下,看看楼主能看明白不:

楼主早上出门,对着天喊了一声“太阳出来”,看到天亮了,就认为自己是上帝,喊太阳出来,太阳就出来了。你再马上喊月亮出来看看呢?

使用特权

评论回复
8
NE5532| | 2016-9-12 08:49 | 只看该作者
另外请阅读“程序调试黑宝书”,在本版精华帖里找,你的这个问题将作为我新课程的例子使用,欢迎到时候品鉴。

使用特权

评论回复
9
jackhwang| | 2016-9-12 09:42 | 只看该作者
LZ,楼上的大神让你由“亮”改为“取反”的意思是:中断进来一次,控制LED的IO高低电平翻转。测试情况如果是你的LED灯亮灭,那就说明你的中断是正常的。

使用特权

评论回复
10
bright世界|  楼主 | 2016-9-12 09:59 | 只看该作者
jackhwang 发表于 2016-9-12 09:42
LZ,楼上的大神让你由“亮”改为“取反”的意思是:中断进来一次,控制LED的IO高低电平翻转。测试情况如果 ...

嗷嗷,这么说明白了,我这就去试一下

使用特权

评论回复
11
gszou| | 2016-9-12 10:02 | 只看该作者
楼主,你那些计数变量是什么类型的?有初始化没有?不防把 if(xx == yy) 的语句改为 if( xx >= yy) 试试。

使用特权

评论回复
12
gszou| | 2016-9-12 10:07 | 只看该作者
另外,time_20ms这是个标置吧,怎只有置1,而没有清0的呢?那中断进一次后,后面的中断还有意义么?

使用特权

评论回复
13
bright世界|  楼主 | 2016-9-12 10:17 | 只看该作者
gszou 发表于 2016-9-12 10:07
另外,time_20ms这是个标置吧,怎只有置1,而没有清0的呢?那中断进一次后,后面的中断还有意义么? ...

嗯嗯,这个主程序中是忘记清零了,我那些计数变量是根据其实际大小而定的整形或字符型,在头文件中已经定义。

使用特权

评论回复
14
bright世界|  楼主 | 2016-9-13 17:16 | 只看该作者
jackhwang 发表于 2016-9-12 09:42
LZ,楼上的大神让你由“亮”改为“取反”的意思是:中断进来一次,控制LED的IO高低电平翻转。测试情况如果 ...

终于找到问题了,原来是芯片本身原因,换了一个新的芯片之后就可以正常使用啦

使用特权

评论回复
15
bright世界|  楼主 | 2016-9-13 17:16 | 只看该作者
NE5532 发表于 2016-9-11 16:29
你把“亮”改成“翻转”,很快就能找到问题了。

不过,感谢提供找bug的思路,谢谢!

使用特权

评论回复
16
IQ110| | 2016-10-25 16:33 | 只看该作者
首先,先确认中断标志位是否清零,正常c语言会自动清零,这个没问题但最好确认一下。
其次,if(time_20ms==1)这个条件使用后需要time_20ms=0,否则会一直进入if(time_20ms==1)执行。

使用特权

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

本版积分规则

4

主题

27

帖子

1

粉丝