Basics of C++ with Arduino
Basics of C++ with Arduino
我读过关于Arduino的文章,以及它如何使用与C相似但不等同的语言。我非常熟悉C++,我想知道如何使用Arduino完成基本任务,例如与I/O引脚通信。我想,一个人将需要内存地址到引脚,然后做这样的事情"闪烁的led":
int main() {
while (1) {
bool * out_pin = /* Whatever that memory address was for that pin */;
*out_pin = 1;
// Some sort of sleep function? (I only know of "windows.h"'s "Sleep" function)
*out_pin = 0;
}
return 0; // Kind of unneeded, I suppose, but probably compiler errors otherwise.
}
我可能真的错了:这就是我问这个问题的原因。
这是从我的问题下面的评论中复制的。David Schwartz回答了我的问题:
关闭。引脚没有内存地址(它们是寄存器映射的,而不是内存映射的)。通常,编译器已经为您将它们映射到变量。所以你只需要做pin_name=pin_value;(像PORTD=7;),编译器发挥了神奇的作用David Schwartz 7分钟前
[PORTD's]寄存器的关键字。它的行为就像一个变量。当编译器看到PORTD=7;是将其编译为必要的汇编代码,以便将7加载到PORTD寄存器中。当它看到i=PORTD时;is从PORTD寄存器加载值并将其存储在变量i中。编译器只是使其工作。–David Schwartz 2分钟前
谢谢!
您需要使用pinMode(your_pin)来激活IO引脚。然后您可以使用数字/模拟写/读与它们进行通信
相关文章:
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- Arduino:for/while/if在void setup()或void loop()之前?——错误:之前需要不合格
- Problems with std::cin.fail()
- 人脸跟踪arduino代码的优化
- vscode下的Arduino代码出现意外编译错误
- Arduino从Txt读取整数
- Arduino C++在构造函数中用参数声明对象数组
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- C++ Boost::asio串行通信与Arduino无法写入
- Arduino millis() - millis() 怎么能等于 0 以外的任何东西?
- 在Arduino中将PWM通道命名为LEDC是否有特定原因
- 'val' Arduino 错误代码之前的预期'('
- 这对"With a stackless coroutine, only the top-level routine may be suspended."意味着什么
- Arduino equivalent to VB WITH
- Raspberry pi to arduino with nrf24 - RF24 库示例不起作用
- Arduino Measuring PWM with attachInterrupt()
- Basics of C++ with Arduino
- 20x4 lcd with arduino and xbee
- Arduino with GTK/CAIRO
- C++ communication with arduino