0

我读过关于 Arduino 的文章,以及它如何使用一种与 C 类似但又不等于 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.
}

我可能真的错了:这就是我问这个问题的原因。

4

2 回答 2

1

这是从我的问题下面的评论中复制的。David Schwartz 回答了我的问题:

关。引脚没有内存地址(它们是寄存器映射的,不是内存映射的)。通常,编译器已经为您将它们映射到变量。所以你只要做 pin_name = pin_value; (如 PORTD = 7;)并且编译器会发挥作用。– 大卫·施瓦茨 7 分钟前

[PORTD's] 寄存器的关键字。它的行为就像一个变量。当编译器看到 PORTD = 7; 将其编译为必要的汇编代码,以将 7 加载到 PORTD 寄存器中。当它看到 i = PORTD; 是从 PORTD 寄存器加载值并将其存储在变量 i 中。编译器只是让它工作。– 大卫·施瓦茨 2 分钟前

谢谢!

于 2012-07-30T01:18:57.783 回答
0

您需要使用 pinMode(your_pin) 来激活 IO 引脚。然后您可以使用数字/模拟写/读与他们沟通

于 2012-07-30T01:08:08.637 回答