如何在AVR中定义或创建自定义PORT
或PIN
?
例如,让我们定义一个名为PORTX
的新8位端口,其中包含PA0
(MSB),PA1
,PB0
,PB1
,{ {1}},PC0
,PC1
,PD0
(LSB)。这样,每当我执行以下代码时:
PD1
它会将PORTX = 0x05;
分配给1
& PC1
,其余为PD1
。
同样,以下代码(假设0
& PC1
拉高至5V)
PD1
会将DDRC &= ~_BV(PC1); // declaring PORTC.1 as input
DDRD &= ~_BV(PD1); // declaring PORTD.1 as input
uint8_t myValue;
myValue = PINX;
分配给5
。
答案 0 :(得分:0)
如果你只是用它来阅读,你可以做这样的事情
#define PINX (PINA & 0x1)<<7 | (PINA & 0x2)<<6 \
(PINB & 0x1)<<5 | (PINB & 0x2)<<4 \
(PINC & 0x1)<<3 | (PINB & 0x2)<<2 \
(PIND & 0x1)<<1 | (PINB & 0x2)
如果您想设置PINX
或PORTX
的值,您可能只想创建一个处理它的函数。