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;
有奖活动 | |
---|---|
“我踩过的那些坑”主题活动——第002期 | |
【EEPW电子工程师创研计划】技术变现通道已开启~ | |
发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
【EEPW在线】E起听工程师的声音! | |
高校联络员开始招募啦!有惊喜!! | |
【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
送您一块开发板,2025年“我要开发板活动”又开始了! | |
打赏了!打赏了!打赏了! |