ピンマッピングと命名

Zerynthは、マルチボードプログラミングを可能にします。

ピン名を命名できます。Zerynthでは、広く普及しているArduinoに似た方法でピンを使えます。例えばデジタルピンDxと記載でき、xはボード上の使用可能な物理ピンの番号です。(MCUのピン番号ではありません)

同様に、アナログピンAxとなります。

Zerynthではピンの属性について上記のピン指定に追加されます。例えば、PWMをピンD3で使用する場合D3.PWMとします。

DIOは、デジタルピンのデフォルト属性であるDxADCは、アナログ端子のデフォルトですAx

さらに、digitalWriteおよびdigitalReadはGPIOに状態を書き込み、又は読み込みをするコマンドですが、これらは属性の指定を必要とせず、常にピン名のみを指定すれば使えます。

いくつかの例を見てみましょう:

Zerynth Arduino/Wiring Note
x=digitalRead(D1) x=digitalRead(D1)
x=digitalRead(A1) x=digitalRead(A1) Use Ax pin as Dx pin
x=analogRead(A1) x=analogRead(A1)
x=analogRead(D1.ADC) x=analogRead(Ax) Use of ADC on Dx pin
digitalWrite(D1,HIGH) digitalWrite(D1,HIGH)
digitalWrite(A1,HIGH) digitalWrite(A1,HIGH) Use of Ax pin as Dx pin
pwm.write(D1.PWM,period,duty) analogWrite(D1, value)
pwm.write(A1.PWM,period,duty) analogWrite(D1, value) Use of Ax as PWM pin
x=icu.capture(D1.ICU,samples,time)
x=icu.capture(A1.ICU,samples,time)
can.init(D30.CANRX, D31.CANTX) Not yet released
spi.init(D11.MOSI, D12.MISO, D13.SCK) Not yet released
i2c.init(D14.SDA,D15.SCL) Not yet released

 

Zerynthでは名前は常に大文字です。以下のPIN名はZerynth組み込みコマンドに含まれています:

  • Pin Names:
    • D0 to D127 representing the names of digital pins.
    • A0 to A31 representing the names of analog pins.
    • LED0 to LED7 representing the names of the on-board installed LEDs.
    • BTN0 to BTN3 representing the names of the on-board installed buttons.
  • Pin Attributes (Dx.YYY):
    • MISO, MOSI, SCK representing the attributes of SPI pins.
    • SCL, SDA representing the attributes of I2C pins.
    • RX, TX representing the attributes of Serial pins.
    • DAC representing the attributes of DAC pins.
    • CANTXCANRX representing the attributes of CAN pins.
    • PWM representing the attributes of PWM pins.
    • ICU representing the attributes of ICU (input capture unit) pins.

 

この使い方(名前の付け方、属性の付け方)は、Zerynthコンパイラがコンパイルする時にピンの間違った使い方をチェックするために必要です。

ただし、このピンの命名方法はZerynthの提供する高度な機能であり、最もよく使われるアナログおよびデジタルの基本的な使い方では、自動的にZerynthがピンの正しい方法を設定します。

また、全てZerynthの各初期化関数(can.init()spi.init()i2c.init())などでは引数として(CAN0I2C0SPI0SERIAL0)のようにショートネームを使うことができます。例えば、デフォルトのパラメータでシリアルポート0を開く場合にはstreams.serial()と記述でき、シリアルポート1を開く場合にはstreams.serial(SERIAL1)と記述します。

wpmaster