关于AVR单片机编程问题,为什么很多书上写设引脚为输入要DDRA&=OB11...
发布网友
发布时间:2024-08-21 22:59
我来回答
共4个回答
热心网友
时间:2024-09-02 19:36
你那么写不是不对,但是要看具体的情况.
你写的 DDRA = 0x00,是把A口全部设置成输入
而程序里的 DDRA &= 0B11110111,是把PA.3口设置成输入状态,至于A口其他引脚,原来是什么状态还保持什么状态,这样,只设置需要的PA.3,而不影响其他引脚.
DDRA &= 0B11110111这样写相对比较直观,不过看着不太舒服,如果写成
DDRA &= 0xF7;短小精悍,但是不直观.
其实,有个又直观,又短小的写法:
DDRA &= ~(1<<3); //将PA.3设置成输入,其他引脚不变
DDRA &= ~(1<<5); //将PA.5设置成输入,其他引脚不变
DDRA &= ~(1<<6); //将PA.6设置成输入,其他引脚不变
热心网友
时间:2024-09-02 19:38
采用读-修改-写操作,防止修改其它不应修改的位。
热心网友
时间:2024-09-02 19:36
简单些说&操作可以清0某些位而不会影响到其他位的原来状态,| 操作可以置1某些位而不影响其他位的原来状态。就是这样,一个是清0指定位,一个是置1指定位,两者都不会影响其他位的操作
热心网友
时间:2024-09-02 19:38
可以,
0B 开头是二进制的,0X开头是十六进制输入,都是一样的