void R_PORT_Create(void)
{
P7 = _01_Pn0_OUTPUT_1 | _00_Pn2_OUTPUT_0 | _00_Pn7_OUTPUT_0;
PM7 = _00_PMn0_MODE_OUTPUT | _02_PMn1_MODE_INPUT | _ 00_PMn2_MODE_OUTPUT | _08_PMn3_MODE_INPUT | _10_PMn4_NOT_USE |
_20_PMn5_NOT_USE | _40_PMn6_NOT_USE | _00_PMn7_MODE_OUTPUT;
}
这是个标准定义。
调用的话。
P7&=_00_Pn7_OUTPUT_0;//=0
P7|=_80_Pn7_OUTPUT_1;//=1
而输入输出转换标准定法是这样的:
void PORT_ChangeP00Input(BOOL enablepu)
{
if (enablepu)
{
PU0 |= _01_PUn0_PULLUP_ON;
}
else
{
PU0 &= (UCHAR)~_01_PUn0_PULLUP_ON;
}
PM0 |= _01_PMn0_MODE_INPUT;
}
这么定义我感觉读起来有点累。
用宏定义又太麻烦?
大家现在是怎么定义的啊。
用宏定义成C51的那种方式
P77=0; /// P7 &= _00_Pn7_OUTPUT_0;//=0
P77=1;
大家是这样定义的不??是不?????
关于IO的输入输出选换也可以定义成宏方式不?
这样为什么不对?如下
#define SDA=0 P7&=_00_Pn7_OUTPUT_0
SDA=0;
有奖活动 | |
---|---|
【有奖活动——B站互动赢积分】活动开启啦! | |
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |