我对这个问题进行过仔细研究,最后得出结论,还是先电平后方向合理。
正如4楼所说,时间长短,但是还是存在的。
电平和方向寄存器默认都是0x00。即:
DDRX = 0X00;
PROTX = 0X00;
如果我们想将它设置为输出、高电平,下面来分析两者区别:
A先方向后电平:
DDRX = 0XFF; 那么此时电平寄存器PORTX = 0X00,那么这个时候IO口向外输出低电平,注意此时是“输出低电平”。
PORTX = 0XFF; 运行此语条后,IO口即会“输出高电平”。
经过上面两条语我们达到了目的,输出高电平,同志们有没有发现在输出高电平前面还有一个“输出低电平”,也许你会觉得时间太短uS级的,时间短并不代表不存在,我们一定要严格要求自己。这个短短的错误电平会给系统带来一个电平突变、某此电路会不会刚好受不了这种突变而产生错误。此电平时间短同时会带来一点点信号干扰信号。
B先电平后方向:
PORTX = 0XFF; 那么此时方向寄存器DDRX = 0X00,此IO口向外为上拉状态。
DDRX = 0XFF; 经过这条语句,也达到了目的。
后面一种从上拉变到高电平,比前面低电平变到高电平,要缓和一些。