打印

请教一下PICC如何中断不保护Z标志咋办?

[复制链接]
2774|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
秋雨|  楼主 | 2011-8-1 23:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用PICC多年了,从8.05到9.60,对于PICC中断保护的问题总是不明白。
那就是,如果我在主程序中有判断语句,比如

IF(cTest==0)
{
  ......
}
这样的语句出现的话,他汇编后会利用STATUS中的Z标志来判断,具体是1:先把cTest赋值给W,2:而后利用BTFSS STATUS,Z,来判断,但是有可能在赋值后判断前发生了中断,进入中断程序,而中断程序中在保存STATUS过程中需要把STATUS赋值给W,而此语句影响Z标志,这样的话保存的STATUS值可能Z就变化了,当退出中断后,下面的判断语句就利用错误的Z来判断了。。。。

请教各位,有没有遇到这种情况?是不是我哪里犯了错误?总不能先关中断,判断完毕后再开中断吧?

我在网上搜了搜没有找到别人提出这样的问题,是不是我哪里不对?多些指教!
沙发
yewuyi| | 2011-8-2 08:32 | 只看该作者
1、如果你用汇编写过PIC的应用程序的话,那么你不会出现这样的问题。
2、请查阅相关资料中用ASM时,状态寄存器是如何保存的?
3、推荐看张明峰先生那本《PIC单片机入门与实战》一书,那本书上用汇编的方式把中断相关的问题说的很清晰。
4、如果你已经用PIC多年,而且还是从8,05版本开始用起的,那么你用PIC的时间至少超过5年了,俺实在很奇怪,你是怎么会如此糊涂这么多年的?

;P,如果是跟着俺干的工程师,肯定被俺打屁股。

使用特权

评论回复
板凳
秋雨|  楼主 | 2011-8-2 08:44 | 只看该作者
本帖最后由 秋雨 于 2011-8-2 08:53 编辑

楼上的老大,用PIC的确不下5年,有10年了?估计。
汇编用过,但都是针对16C5X的芯片,没有中断。。。
手头不少PIC的书,但是没有你说的那本。
查了查手头的书,汇编中断保护W和STATUS的代码如下:
1:MOVWF W_STK
2:MOVF STATUS,W
3:CLRF STATUS
4:MOVWF STATUS_STK
这个和PICC的中断入口保护是一样的,第2条语句会改变Z,请l老大明示。

使用特权

评论回复
地板
lxyppc| | 2011-8-2 08:54 | 只看该作者
手头不少PIC的书,但是没有你说的那本。
秋雨 发表于 2011-8-2 08:44

实际上你只需要张明锋那一本
PICC的中断保护入口不是这样写的

使用特权

评论回复
5
秋雨|  楼主 | 2011-8-2 09:05 | 只看该作者
不会吧,我以前查过,难道它用了高低字节交换拿个?请问如何查看中断入口的汇编?我咋在汇编中找不到。。。

使用特权

评论回复
6
yewuyi| | 2011-8-2 09:39 | 只看该作者
不会吧,我以前查过,难道它用了高低字节交换拿个?请问如何查看中断入口的汇编?我咋在汇编中找不到。。。
秋雨 发表于 2011-8-2 09:05


恢复时需要用交换指令,进入时用MOVF STATUS,W虽然会改变STATUS,但在发生变化前其内容已经被送到了W。

使用特权

评论回复
7
秋雨|  楼主 | 2011-8-2 09:41 | 只看该作者
老大,存的就是错误的,你看看这个帖子。。
http://www.**.com/cocoa/blog/07-11/77020_ad0d0.html

使用特权

评论回复
8
yewuyi| | 2011-8-2 10:11 | 只看该作者
没看到你给出链接中有什么错误。


费那么多时间,自己到网络上去买本《PIC单片机入门与实战》看看就明白了。

使用特权

评论回复
9
SeaSun| | 2011-8-3 12:43 | 只看该作者
MOVF STATUS,W
指令执行前 Z是不会改变的, 指令执行时 把Z保存在WORK中了. 指令执行后 Z有可能改变了.
所以中断发生前的Z 被保存起来了: MOVWF STATUS_STK.

如果连Z都没保护起来的话,PIC早就 必死了

使用特权

评论回复
10
秋雨|  楼主 | 2011-8-5 10:58 | 只看该作者
谢谢各位。。。。

使用特权

评论回复
11
秋雨|  楼主 | 2011-8-5 11:00 | 只看该作者
咋没法给各位评分?说24小时评分超过限制。。

使用特权

评论回复
12
yewuyi| | 2011-8-5 11:09 | 只看该作者
你评分的总分不能超过悬赏分的数值,你本贴悬赏20分,所以不能超出20分,但也不能少于20分,必须正好是20分。

使用特权

评论回复
13
秋雨|  楼主 | 2011-8-5 11:25 | 只看该作者
试了,还是显示  24 小时评分数超过限制,请修改

使用特权

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

本版积分规则

24

主题

143

帖子

1

粉丝