AVR单片机数据手册上说他的IO端口时双向可独立串口,但是其实PORTX与PINX之间是会相互影响的。
具体实验如下:
PINC&=~(1<
DDRC&=~(1<
DDRC|=(1<PORTC&=~(1<
将C端口设置为0、1、2为输入,1、2、3为输出,并对相应的输入与输出寄存器都设置为低电平。
当执行了下面语句以后:寄存器状态时这样的:
效果是PORTC的3、4、5口为高电平,PINC全部为低电平。
而当执行了下面语句:
PORTC=(1<
就变成了这样:
也就是说当你改变PORTC口之后,PINC也会跟着变化,即使你改变的口没有联系。