Zerynthは、マルチボードプログラミングを可能にします。
ピン名を命名できます。Zerynthでは、広く普及しているArduinoに似た方法でピンを使えます。例えばデジタルピンはDx
と記載でき、xはボード上の使用可能な物理ピンの番号です。(MCUのピン番号ではありません)
同様に、アナログピンはAx
となります。
Zerynthではピンの属性について上記のピン指定に追加されます。例えば、PWMをピンD3
で使用する場合D3.PWM
とします。
DIOは、デジタルピンのデフォルト属性であるDx
ADCは、アナログ端子のデフォルトです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
toD127
representing the names of digital pins.A0
toA31
representing the names of analog pins.LED0
toLED7
representing the names of the on-board installed LEDs.BTN0
toBTN3
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.CANTX
,CANRX
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()
)などでは引数として(CAN0
、I2C0
、SPI0
、SERIAL0
)のようにショートネームを使うことができます。例えば、デフォルトのパラメータでシリアルポート0を開く場合にはstreams.serial()
と記述でき、シリアルポート1を開く場合にはstreams.serial(SERIAL1)
と記述します。
Pingback: Zerynthプログラミングガイド – マイクロテクニカ製品情報Wiki