我已经阅读了有关Arduino的信息,以及它如何使用类似于但不等于C的语言。我对C ++非常熟悉,我想知道人们如何使用Arduino完成基本任务,例如与I / O通讯。针脚。我认为人们需要将内存地址连接到引脚,然后对“闪烁的指示灯”执行以下操作:
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时;是从PORTD寄存器加载值并将其存储在变量i中。编译器使其工作。 – David Schwartz 2分钟前
谢谢!
关于c++ - Arduino的C++基础知识,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11714319/