如何在 AVR 中定义或创建自定义端口和 PIN
How to define or create customized PORT and PIN in AVR?
如何在AVR中定义或创建自定义PORT
或PIN
?
例如,让我们定义一个名为PORTX
的新 8 位端口,它由PA0
(MSB(、PA1
、PB0
、PB1
、PC0
、PC1
、PD0
、PD1
(LSB( 组成。因此,每当我执行以下代码时:
PORTX = 0x05;
它将1
分配给PC1
和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;
将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)
如果要设置 PINX
或 PORTX
的值,则可能只想创建一个处理它的函数。
相关文章:
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- C++自定义比较函数
- 如何比较自定义类的std::变体
- std::设置自定义比较器
- 如何正确实现和访问运算符的各种自定义枚举器
- flutter:即使shouldRepaint()返回true,自定义画家也不会重新绘制
- 自定义先决条件对移动分配运算符有效吗
- 使用VS Code和CMake Tools运行自定义命令
- 如何创建从Maya(或类似程序)到虚幻引擎的自定义数据导出插件
- std::ranges::elements_view,用于自定义类似元组的数据
- 跟随整数索引列表的自定义类迭代器
- 参数化自定义CMake工具链
- 使用自定义比较函数使用std::sort()对矢量字符串进行排序时出现问题
- 如何在自定义类中启用'auto loops'?
- 使用QJsEngine在Qt中注册自定义类型
- Qt自定义QPush按钮未显示在布局上
- 自定义对象的dlib序列化在gcc中失败
- 自定义创建QFuture
- 如何在 AVR 中定义或创建自定义端口和 PIN