打印

如何用中断打断当前操作

[复制链接]
1206|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
inboyg|  楼主 | 2013-11-24 11:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
dirtwillfly| | 2013-11-24 16:06 | 只看该作者
不进入低功耗就可以啊,和51的程序一样,用个while(1)

使用特权

评论回复
板凳
黄小俊| | 2013-11-24 16:22 | 只看该作者

使用特权

评论回复
地板
i1mcu| | 2013-11-24 19:41 | 只看该作者
去掉低功耗的命令。

使用特权

评论回复
5
i1mcu| | 2013-11-24 19:42 | 只看该作者
while(1)等待循环就行的。

使用特权

评论回复
6
inboyg|  楼主 | 2013-11-25 16:35 | 只看该作者
dirtwillfly 发表于 2013-11-24 16:06
不进入低功耗就可以啊,和51的程序一样,用个while(1)

这个在串口上可以这样做,我今天也试过了,但cc430无线的中断好像不太一样,我之前试了好像不行,不知道版主有没有什么建议

使用特权

评论回复
7
dirtwillfly| | 2013-11-25 19:08 | 只看该作者
inboyg 发表于 2013-11-25 16:35
这个在串口上可以这样做,我今天也试过了,但cc430无线的中断好像不太一样,我之前试了好像不行,不知道 ...

一般是把进入低功耗的指令去掉,加上while(1);
这样就不会进入低功耗了
你能把你的程序发上来吗?

使用特权

评论回复
8
inboyg|  楼主 | 2013-11-25 19:53 | 只看该作者
dirtwillfly 发表于 2013-11-25 19:08
一般是把进入低功耗的指令去掉,加上while(1);
这样就不会进入低功耗了
你能把你的程序发上来吗? ...

freceive.rar (547.83 KB)

这个附件就是那个接收的程序,是根据一个例程改的,把低功耗一去掉就不行。我现在根据这个例程把很多东西都优化了,并且根据我的实际需要加了很多功能,但这个低功耗就是没法去掉。请版主看一下吧,多谢!

使用特权

评论回复
9
dirtwillfly| | 2013-11-26 09:01 | 只看该作者
看了你的RF_Toggle_LED_Demo文件,把进入和退出低功耗模式的代码去掉似乎就可以了。
看你开了看门狗,记得及时喂狗啊:)

使用特权

评论回复
10
dirtwillfly| | 2013-11-26 09:05 | 只看该作者
msp430进入低功耗模式后,当有中断唤醒,执行完中断服务程序,如果中断服务程序中没有退出低功耗模式的代码,msp430还会恢复成中断唤醒前的状态,也就是低功耗模式。
所以在main函数里,低功耗模式后面的语句是永远执行不到的。

使用特权

评论回复
11
inboyg|  楼主 | 2013-11-26 09:11 | 只看该作者
dirtwillfly 发表于 2013-11-26 09:05
msp430进入低功耗模式后,当有中断唤醒,执行完中断服务程序,如果中断服务程序中没有退出低功耗模式的代码 ...

后来我把看门狗关掉了,而且把进出低功耗去掉了,还是不行的,就这个程序。是不是跟无线的WOR有关呢?

使用特权

评论回复
12
dirtwillfly| | 2013-11-26 09:47 | 只看该作者
inboyg 发表于 2013-11-26 09:11
后来我把看门狗关掉了,而且把进出低功耗去掉了,还是不行的,就这个程序。是不是跟无线的WOR有关呢? ...

应该不是。你看看这个文档:http://shop.21ic.com/share_docdata/2011-05/CC430-Wake-On-Radio.pdf

使用特权

评论回复
13
inboyg|  楼主 | 2013-11-26 21:13 | 只看该作者
dirtwillfly 发表于 2013-11-26 09:47
应该不是。你看看这个文档:http://shop.21ic.com/share_docdata/2011-05/CC430-Wake-On-Radio.pdf ...

谢谢,我这几天再试试

使用特权

评论回复
14
inboyg|  楼主 | 2013-11-27 16:22 | 只看该作者
dirtwillfly 发表于 2013-11-26 09:47
应该不是。你看看这个文档:http://shop.21ic.com/share_docdata/2011-05/CC430-Wake-On-Radio.pdf ...

我在我的复杂程序下试过了,现在可以把低功耗去掉了,开启中断后我用了for(cccc=0;cccc<=50;)这么个for循环把那里卡住,cccc是全局变量,在中断服务程序里把cccc赋51,证明了是可以的,谢谢版主的帮忙

使用特权

评论回复
15
comeon201208| | 2013-11-27 18:58 | 只看该作者
这个跟你的单片机等cpu自身的功能是有关系的

使用特权

评论回复
16
comeon201208| | 2013-11-27 19:00 | 只看该作者
例如430单片机的话,设置的任一个中断发生的话都可以唤醒休眠状态的

使用特权

评论回复
17
comeon201208| | 2013-11-27 19:01 | 只看该作者
而像stm32单片机进入休眠个状态后,一般的如定时器/时钟的秒中断的都不可以唤醒休眠状态的

使用特权

评论回复
18
comeon201208| | 2013-11-27 19:02 | 只看该作者
职能是特定的中断可以唤醒的,还有啊,就是不论哪一个单片机的,都需要设定其各中断的响应优先级别的

使用特权

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

本版积分规则

3

主题

15

帖子

0

粉丝