如何在 AVR 中定义或创建自定义端口和 PIN

How to define or create customized PORT and PIN in AVR?

本文关键字:自定义 PIN 创建 AVR 定义      更新时间:2023-10-16

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

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

PORTX = 0x05;

它将1分配给PC1PD1,其余部分正在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;

5分配给myValue

如果你只是用它来阅读,你可以做这样的事情

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