0

如何定义或创建自定义PORTPIN在 AVR 中?

例如,让我们定义一个名为PORTX( PA0MSB)、PA1PB0PB1PC0PC1PD0PD1(LSB) 的新 8 位端口。因此,每当我执行以下代码时:

PORTX = 0x05;

它将分配1PC1&PD1和其余部分0

同样,下面的代码(假设PC1&PD1上拉到5V)

DDRC &= ~_BV(PC1); // declaring PORTC.1 as input
DDRD &= ~_BV(PD1); // declaring PORTD.1 as input

uint8_t myValue;
myValue = PINX;

将分配5myValue

4

1 回答 1

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您可能只想创建一个处理它的函数。

于 2015-04-09T01:05:49.983 回答