如何在AVR中定义或创建自定义PORT和PIN?

时间:2015-03-30 18:23:56

标签: c++ c avr atmelstudio

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

例如,让我们定义一个名为PORTX的新8位端口,其中包含PA0(MSB),PA1PB0PB1,{ {1}},PC0PC1PD0(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

1 个答案:

答案 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)

如果您想设置PINXPORTX的值,您可能只想创建一个处理它的函数。