注册 登录
查看: 361|回复: 4

[鹰眼] 对SCCB协议的宏定义的问题

[复制链接]
发表于 2014-4-9 20:32:45 | 显示全部楼层 |阅读模式
SCCB时序,由SCL和SDA的高低电平来实现,也就是说引脚为输出时只要定义四个宏就可以了SCL_H SCL_L SDA_H SDA_L
当引脚配置成输入时我该怎么设置?还有我对程序中的宏不太理解
#define SCL_H()         PTXn_T(SCCB_SCL,OUT) = 1
#define SCL_L()         PTXn_T(SCCB_SCL,OUT) = 0
#define SCL_DDR_OUT()   PTXn_T(SCCB_SCL,DDR) = 1
#define SCL_DDR_IN()    PTXn_T(SCCB_SCL,DDR) = 0

#define SDA_H()         PTXn_T(SCCB_SDA,OUT) = 1
#define SDA_L()         PTXn_T(SCCB_SDA,OUT) = 0
#define SDA_IN()        PTXn_T(SCCB_SDA,IN)
#define SDA_DDR_OUT()   PTXn_T(SCCB_SDA,DDR) = 1
#define SDA_DDR_IN()    PTXn_T(SCCB_SDA,DDR) = 0
哪位懂得人跟我解释下每个宏的意思,谢谢!

回复

使用道具 举报

发表于 2014-4-9 21:16:02 | 显示全部楼层
这些宏定义配置了SCL和SDA管脚输出高、低电平,模拟时候的时候只要使用这些宏就好了
回复 支持 反对

使用道具 举报

发表于 2014-4-9 22:02:29 | 显示全部楼层
调用 SDA_DDR_IN()  和 SCL_DDR_IN() 就是设置这两个管脚为输入啊。

如果你想修改管脚,只需要修改 SCCB_SCL 和 SCCB_SDA。

宏定义这东西比较复杂,建议你先补充一下C语言知识,不然比较难懂
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-10 22:01:45 | 显示全部楼层
onlyfly 发表于 2014-4-9 22:02
调用 SDA_DDR_IN()  和 SCL_DDR_IN() 就是设置这两个管脚为输入啊。

如果你想修改管脚,只需要修改 SCCB ...

那你能跟我介绍下这些宏的具体意思 比如SDA_DDR_OUT() 是SDA管脚反向输出还是输入,初始电平是高还是低
还有我不懂这个宏SDA_IN() 的意思  谢谢
回复 支持 反对

使用道具 举报

发表于 2014-4-10 22:05:04 | 显示全部楼层
静心潜力 发表于 2014-4-10 22:01
那你能跟我介绍下这些宏的具体意思 比如SDA_DDR_OUT() 是SDA管脚反向输出还是输入,初始电平是高还是低
...

这些是山外哥写的内部代码,为了移植方便而添加的宏定义。
SDA_DDR_OUT() 就是设置 SDA 管脚的数据方向为输出。
SCCB 要求是初始化为高电平的啊
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回列表 返回顶部