打印
[疑难问答]

将OCD接口复用为IO口,SDA低电平时暂停程序?

[复制链接]
936|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liao_122|  楼主 | 2018-9-29 20:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 liao_122 于 2018-9-29 20:22 编辑

有没有人遇到这样的情况,用的是MA82g5D16 SOP28  将OCD的接口复用位IO用,做按键输入,SCL没问题,SDA一拉低就会暂停程序,释放后程序又能继续运行了,

unsigned char dcon0 = 0x00;
        EA=0;
        dcon0 = readPPageSFR(0x4C);
        dcon0 &= 0xFE;
        writePPageSFR(0x4C, dcon0);
SFRPI = 0x00;                 //00
    P4M0 &= ~P4M05;
    SFRPI = 0x02;
    P4M1 &= ~P4M05;
    SFRPI = 0x00;
        P45 = 1;
SFRPI = 0x00;
    P4M0 |= 0x10;
    SFRPI = 0x02;
    P4M1 |= 0x10;
        EA=1;
这是初始化代码

沙发
noctor| | 2018-9-30 09:00 | 只看该作者
本帖最后由 noctor 于 2018-9-30 09:05 编辑

你P4M05的定义是什么?,然后P4M0先清零再|=应该就行了吧

使用特权

评论回复
板凳
liao_122|  楼主 | 2018-10-15 21:29 | 只看该作者
问题找到了,是定时器0打开了门控GATE,致使定时器由外部中断控制,而OCD_SDA恰好是外部中断0管脚,由于程序是有定时器0提供节拍的,因此表现出来的现象为程序暂定

使用特权

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

本版积分规则

7

主题

18

帖子

2

粉丝