打印
[PIC®/AVR®/dsPIC®产品]

求助:PIC24F在Debug模式下单步运行和断点连续运行的结果不同,为什么?

[复制链接]
1622|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
杨琳lin|  楼主 | 2013-7-31 15:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
选PIC24F的八个I/O做并行端口,读取I/O端口值,在Debug模式下单步运行结果是对的,但断点连续运行的结果就不对了,简单程序如下。碰到过此类问题且已解决的,麻烦指导一下。非常感谢1
#define         DS12CR887_AD_C         TRISE   //方向寄存器
#define         DS12CR887_AD_read      PORTE   
#define         DS12CR887_AD_write     LATE   

unsigned char        DSData;
DS12CR887_AD_C =1;  //设为输入口
DSData=DS12CR887_AD_read;
delay();
沙发
杨琳lin|  楼主 | 2013-7-31 15:56 | 只看该作者
I/O也外接了10K的上拉电阻,但还是不行。

使用特权

评论回复
板凳
弓长月月鸟| | 2013-7-31 16:23 | 只看该作者
楼主,你应该说明一下,数据怎么个不对。我看了你的问题,不知道怎么跟你讨论了。

使用特权

评论回复
地板
杨琳lin|  楼主 | 2013-7-31 17:13 | 只看该作者
先写入数据,再经过下一步处理读出相应数据,在Debug模式下单步运行时,读出的数据是处理后的理想数据,但断点连续运行读到的数据和写入值一样,不是处理后的结果。写和读都是用同一组I/O口,数据输入、输出方向也随时改的。谢谢关注,欢迎讨论!

使用特权

评论回复
5
弓长月月鸟| | 2013-8-1 09:30 | 只看该作者
建议你从看一下LATE何PORTE的区别,给你一个思考的思路吧。希望能帮上你。

使用特权

评论回复
6
杨琳lin|  楼主 | 2013-8-1 09:30 | 只看该作者
有没有人知道啊,着急等待ing。。。。。。

使用特权

评论回复
7
杨琳lin|  楼主 | 2013-8-1 13:21 | 只看该作者
谢谢啦,问题解决了。LATE作为写寄存器,PORTE作为读寄存器。但解决上面我提到的问题的关键是,在读之前加个延时。谢谢热心的“弓长月月鸟”—张鹏吧!:)

使用特权

评论回复
8
弓长月月鸟| | 2013-8-1 16:34 | 只看该作者
,不用客气,俺也没帮上啥忙。顺便俺也一同学习了。

使用特权

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

本版积分规则

19

主题

96

帖子

2

粉丝