0

Arduinoについて、そしてCと似ているが等しくない言語をどのように使用しているかについて読んだことがあります。私は、C ++に精通しており、I / Oとの通信など、Arduinoで基本的なタスクをどのように行うのか疑問に思いました。ピン。ピンへのメモリアドレスが必要になると思います。次に、「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

これは私の質問の下のコメントからコピーされています。デビッドシュワルツは私の質問に答えました:

選ぶ。ピンにはメモリアドレスがありません(メモリマップではなく、レジスタマップされています)。一般的に、コンパイラーはすでにそれらを変数にマップしています。したがって、pin_name=pin_value;を実行するだけです。(PORTD = 7;のように)そしてコンパイラは魔法を行います。–デビッドシュワルツ7分前

[PORTD's]レジスターのキーワード。変数のように動作します。コンパイラがPORTD=7を検出したとき。は、7をPORTDレジスタにロードするために必要なアセンブリコードにコンパイルします。i=PORTDと表示された場合; は、PORTDレジスタから値をロードし、それを変数iに格納します。コンパイラはそれを機能させるだけです。– DavidSchwartz2分前

ありがとうございました!

于 2012-07-30T01:18:57.783 に答える
0

IOピンをアクティブにするには、pinMode(your_pin)を使用する必要があります。次に、デジタル/アナログ書き込み/読み取りを使用してそれらと通信できます

于 2012-07-30T01:08:08.637 に答える