・物理ピン番号または定数( #GPIO0 ~ #GPIO27 )
・8ビットI/O( D0 ~ D7 )
・ピンアサインとModeの対応は以下の表を参照
※定数があるピンのModeでは、デジタル入力・出力およびソフトウェアPWM・TONE出力の設定行なえるので省略
<内側 | 外側> | |||||||
Mode | 機能 | 定数 | 物理ピン番号 | 定数 | 機能 | Mode | ||
---|---|---|---|---|---|---|---|---|
3.3V | 1 | 2 | 5V | |||||
SDA | #GPIO2 | 3 | 4 | 5V | ||||
SCL | #GPIO3 | 5 | 6 | GND | ||||
CLOCK | D7 | #GPIO4 | 7 | 8 | #GPIO14 | |||
GND | 9 | 10 | #GPIO15 | |||||
D0 | #GPIO17 | 11 | 12 | #GPIO18 | D1,PWM0 | PWM | ||
D2 | #GPIO27 | 13 | 14 | GND | ||||
D3 | #GPIO22 | 15 | 16 | #GPIO23 | D4 | |||
3.3V | 17 | 18 | #GPIO24 | D5 | ||||
MOSI | #GPIO10 | 19 | 20 | GND | ||||
MOSO | #GPIO9 | 21 | 22 | #GPIO25 | D6 | |||
SCLK | #GPIO11 | 23 | 24 | #GPIO8 | CE0 | |||
GND | 25 | 26 | #GPIO7 | |||||
#GPIO0 | 27 | 28 | #GPIO1 | |||||
#GPIO5 | 29 | 30 | GND | |||||
#GPIO6 | 31 | 32 | #GPIO12 | PWM0 | PWM | |||
PWM | PWM1 | #GPIO13 | 33 | 34 | GND | |||
PWM | PWM1 | #GPIO19 | 35 | 36 | #GPIO16 | |||
#GPIO26 | 37 | 38 | #GPIO20 | |||||
GND | 39 | 40 | #GPIO21 |
#GPIOMODE_IN | デジタル入力 |
#GPIOMODE_OUT | デジタル出力 |
#GPIOMODE_PWM | ハードウェアPWM出力 |
#GPIOMODE_CLOCK | CLOCK出力 |
#GPIOMODE_SOFT_PWM | ソフトウェアPWM出力 |
#GPIOMODE_SOFT_TONE | ソフトウェアTONE出力 |
※ソフトウェアPWM・TONE出力を利用することで動作が遅くなります。
' INPUT GPIOMODE 3,#GPIOMODE_IN GPIOPUD 3,1 ?GPIOIN(3)
・物理ピン番号または定数( #GPIO0 ~ #GPIO27 )
・ピンアサインとModeの対応については、GPIOMODE の説明を参照
0 | 無効 |
1 | プルダウン |
2 | プルアップ |
※GPIOMODEの例をご覧ください
・物理ピン番号または定数( #GPIO0 ~ #GPIO27 )
・ピンアサインとModeの対応については、GPIOMODE の説明を参照
指定したピン番号の入力状態
・指定したピンのIOモードがデジタル入力に設定されていない場合は無効値(-1)を返す
※GPIOMODEの例をご覧ください
・8ビットI/O全8ピンのIOモードをデジタル入力に設定しておくこと
・D0~D7のビット順は反転して取得されます
指定したピン番号の入力状態
・8ビットI/Oに用いられるピンの8つのうち、どれもIOモードがデジタル入力に設定されていない場合は無効値(-1)を返す
V=GPIOIN()
・物理ピン番号または定数( #GPIO0 ~ #GPIO27 )
・ピンアサインとModeの対応については、GPIOMODE の説明を参照
・指定したピン番号のピンに設定したIOモードによって機能が異なる
デジタル出力モード | デジタル出力の状態を設定 (0:出力しない 1:出力) |
PWM出力モード | PWMのデューティ比を設定 (範囲:0~GPIOHWPWMで設定した分解能) |
CLOCK出力モード | クロック出力の周波数(Hz)を設定 (範囲:4,688Hz~9,600,000Hz) |
ソフトウェアPWM出力モード | PWMのデューティ比を設定 (範囲:0~100) |
ソフトウェアTONE出力モード | 出力する音程(Hz)を設定 (範囲:0Hz~5,000Hz) |
※PWM出力モードではデューティ比が連動するピンが存在します。(ピン番号12と32の機能PWM0、ピン番号33と35の機能PWM1)
GPIOOUT 18,1
0~255
GPIOOUT &HC3
・ソフトウェアPWM出力には影響しません
・パラメータを省略した場合は、現在の設定のまま変更されません
PWM出力波形の選択
0 | mark:space(サーボモータの制御に向く) |
1 | balanced(LEDの明度制御に向く) |
PWMクロックの分周を設定(範囲:2~4096)
・元クロックは19.2MHzとなります。
2 | 9.6MHz |
4 | 4.8MHz |
8 | 2.4MHz |
16 | 1.2MHz |
32 | 600kHz |
64 | 300kHz |
128 | 150kHz |
256 | 75kHz |
512 | 37.5kHz |
1024 | 18.75kHz |
2048 | 9.375kHz |
4096 | 4.6875kHz |
クロックの分解能(範囲:0~4,294,967,295)
' PWM GPIOMODE 18,0 GPIOMODE 18,2 GPIOOUT 18,50 GPIOHWPWM 0,1,100
・使用するピンのGPIOMODEを切り替え
・I2Cを有効にできない場合、Internal Errorとなる
3,815 ~ 1,689,000Hz(省略時、現在の設定を維持)
'--- I2C EEPROM I2CSTART DIM BUF1[3] BUF[2]=25 I2CSEND &H50,BUF1'SEND DATA I2CSEND &H50,BUF1,2'SET ADDR ?I2CRECV(&H50) I2CSTOP
・使用したピンのGPIOMODEをデジタル入力へ切り替え
・I2Cを無効にできない場合、Internal Errorとなる
※I2CSTARTの例をご覧ください
・I2Cを有効にできない場合、Internal Errorとなる
TRUE:成功、FALSE:失敗
R=I2CRESULT()
・処理結果はI2CRESULT命令にて取得できます
・I2Cを有効にできない場合、Internal Errorとなる
0~127
・I2Cデバイスからの8ビット値(0~255)
・処理に失敗した場合は-1が返る
※I2CSTARTの例をご覧ください
・処理結果はI2CRESULT命令にて取得できます
・I2Cを有効にできない場合、Internal Errorとなる
0~127
I2Cデバイスから受信するデータが格納される配列変数(1つの要素は8ビット分の値)
・サイズを省略した場合、要素数の範囲は最大8192個まで
配列の要素数
.要素数の範囲は最大8192個まで
※I2CSTARTの例をご覧ください
・リピートスタートコンディションを使用し受信
・処理結果はI2CRESULT命令にて取得できます
・I2Cを有効にできない場合、Internal Errorとなる
0~127
0~255
・I2Cデバイスからの8ビット値(0~255)
・処理に失敗した場合は-1が返る
V=I2CRECV8(&H32,0)
・リピートスタートコンディションを使用し受信
・2Byte(16Bit)のデータはLSB First
・処理結果はI2CRESULT命令にて取得できます
・I2Cを有効にできない場合、Internal Errorとなる
0~127
0~255
・I2Cデバイスからの16ビット値(0~65535)
・処理に失敗した場合は-1が返る
V=I2CRECV16(&H32,0)
・処理結果はI2CRESULT命令にて取得できます
・I2Cを有効にできない場合、Internal Errorとなる
0~127
0~255
※I2CSTARTの例をご覧ください
・処理結果はI2CRESULT命令にて取得できます
・I2Cを有効にできない場合、Internal Errorとなる
0~127
I2Cデバイスへ送信するデータが格納された配列変数(1つの要素は8ビット分の値)
・要素が範囲外の場合は、0以下の値は0、255以上の値は255となる
・サイズを省略した場合、要素数の範囲は最大8192個まで
配列の要素数
・要素数の範囲は最大8192個まで
※I2CSTARTの例をご覧ください
・処理結果はI2CRESULT命令にて取得できます
・I2Cを有効にできない場合、Internal Errorとなる
0~127
0~255
0~255
I2CSEND8 &H32,0,25
・2Byte(16Bit)のデータはLSB First
・処理結果はI2CRESULT命令にて取得できます
・I2Cを有効にできない場合、Internal Errorとなる
0~127
0~255
0~65535
I2CSEND16 &H32,0,&H2525
・使用するピンのGPIOMODEを切り替え
・SPIを有効にできない場合、Internal Errorとなる
3,815 ~ 125,000,000 Hz
0 | CPOL=0、CPHA=0 |
1 | CPOL=0、CPHA=1 |
2 | CPOL=1、CPHA=0 |
3 | CPOL=1、CPHA=1 |
' SPI D/A SPISTART 5000000,3 DIM BUF2[2] BUF3[0]=&B01010000 BUF3[1]=&HFF SPISEND BUF3 SPISTOP
・I2CSTARTにより切り替えられたピンのGPIOMODEをデジタル入力へ切り替え
・SPIを無効にできない場合、Internal Errorとなる
※SPISTARTの例をご覧ください
・SPIを有効にできない場合、Internal Errorとなる
・負数や配列定義要素数を超えたサイズを指定すると Out of range エラー
SPIデバイスから受信したデータを格納する配列変数(1つの要素には8ビット分の値が格納される)
・サイズを省略した場合、要素数の範囲は最大4096個まで
配列の要素数
・要素数の範囲は最大4096個まで
DIM WORK%[256] SPIRECV WORK%,256
・SPIを有効にできない場合、Internal Errorとなる
・負数や配列定義要素数を超えたサイズを指定すると Out of range エラー
SPIデバイスへ送信するデータが格納された配列変数(1つの要素は8ビット分の値)
・要素が範囲外の場合は、0以下の値は0、255以上の値は255となる
・サイズを省略した場合、要素数の範囲は最大4096個まで
配列の要素数
・要素数の範囲は最大4096個まで
※SPISTARTの例をご覧ください
・SPIを有効にできない場合、Internal Errorとなる
・負数や配列定義要素数を超えたサイズを指定すると Out of range エラー
SPIデバイスへ送受信するデータを格納する配列変数(1つの要素は8ビット分の値)
・送信時、要素が範囲外の場合は、0以下の値は0、255以上の値は255となる
・サイズを省略した場合、要素数の範囲は最大4096個まで
配列の要素数
・要素数の範囲は最大4096個まで
DIM WORK%[256] FOR I=0 TO 255:WORK%[I]=RND(256):NEXT SPISENDRECV WORK%,256