ピン入出力
PICSYSにおけるI/Oピンの指定は、RA0の場合にはRA(0)、RB4の場合にはRB(4)の様に行います。
- void pinMode(byte pin, byte mode)
I/Oピンの使用法を指定します。
例1:pinMode(RB(7), INPUT):RB7を入力に設定します。
例2:pinMode(RA(2), OUT_SERVO3):RA2をRCサーボ制御出力に設定します。
例3:pinMode(RC(0), OUT_BEEP):RC0をビープ音出力用に設定します。
指定モード一覧
- INPUT:ビット入力
- INPUT_PU:プルアップ付きビット入力(PICSYS24/PICSYS30)
- OUTPUT:ビット出力
- OUTPUT_OC:オープンドレインビット出力(PICSYS24)
- IN_ANALOG:AD変換入力(現在未使用)
- OUT_BEEP:BEEP音出力
- OUT_PWM1-4:PWM出力(かなり単純化されています。。。。)
- OUT_SERVO1-4:RCサーボ制御出力
- void digitalWrite(byte pin, int value)
指定したI/Oピンに値を書き出します。I/OピンがOUTPUTに指定されている場合には、値をLOWもしくは0とした場合に0を、HIGHもしくは0以外にした場合には1を出力します。I/OピンがOUT_SERVO1-4に指定されている場合には、-100から100までの値を指定します。I/OピンがOUT_PWM1-4に指定されている場合には、0から100までの値を指定します。I/OピンがOUT_BEEPに指定されている場合には、0から8までの値を指定します。8は最高の周波数、0はビープ音の停止となります。
例1:digitalWrite(RB(6), HIGH):RB6がビット出力に設定されている場合にHIGHを出力します。
例2:digitalWrite(RA(2), 50):RA2がRCサーボ制御出力に設定されている場合に、規定の最大回転角の50%の回転を指定します。
例3:digitalWrite(RC(0), 8):RC0がビープ音出力用に設定されている場合、出力できる最高の周波数のビープ音を継続出力します。
- int digitalRead(byte pin)
指定したI/Oピンの値を読み込みます。
PIC-DEV-2550URLでは、タクトスイッチの入力ピンが表示装置への出力ピンと共有されているため、単純に読み取ることができません。PIC-DEV-2550URLでは、タクトスイッチ値の読み込みに、VSW(0)-VSW(5)を利用します。
例1:x = digitalRead(RB(7)):RB7が入力に設定されている場合にI/OピンのHIGH/LOWを読み込みます。
例2:v = digitalRead(RA(2)):RA2がRCサーボ制御に設定されている場合に、その制御値(-100から100)を返します。
例3:x = digitalRead(VSW(2)):PIC-DEV-2550URLでVSW(2):SW3の値を読み込みます。
- shiftOut()
アナログ入出力
PICSYSにおけるアナログピンの指定は、AN0の場合にはAN(0)、AN3の場合にはAN(3)の様に行います。
- int analogRead(byte pin)
指定したアナログピンからA/D変換値を読み出します。PIC18F2553では0-4095、それ以外のPIC18Fでは0-1023を返します。
注意:PIC18Fのアナログピン割当機能の制約で、例えばAN3(AN(3))を指定した場合には、そのインデックスより小さなAN0-AN2ピンも自動的にアナログ入力に切り替わります。
例1:v = analogRead(AN(0)):AN0をアナログ入力に設定し、AN0に与えられている電圧のA/D変換値を返します。
- void analogWrite(byte pin, int value)
- void analogReference(byte type)
計時機能
- unsigned long millis()
ミリ秒(1/1000秒)単位で、システムが稼働を開始してからの経過時間を返します。
- void delayMilliseconds(int ms)
msからms+1ミリ秒ほどCPUの能力を食いつぶします。:-)
現在の実装では、本関数内ではMCUはアイドルモードに入り、消費電力を低減させます。
- void delayMicroseconds(int us)
usで指定したマイクロ秒ほどCPUの能力を食いつぶします。:-)
現在の実装は、精度をあまり考慮していません。
割り込み
- void interrupts()
割り込みの受付を再開します。
- void noInterrupts()
割り込みの受付を一時中断します。
シリアル通信
RS232CもしくはUSB(FT232RL)によるシリアル通信処理を行います。
- Serial_begin()
シリアル通信器を初期化します。
- Serial_available()
シリアル受信器に文字が受信されているかどうかを返します。
- Serial_busy()
シリアル送信器が使用中かどうかを返します。
- Serial_getc(char)
シリアル受信器から1文字取得します。
- Serial_putc(char)
シリアル送信器に1文字出力します。
- Serial_puts(char *)
シリアル送信器に(RAM)文字列を出力します。
- Serial_putrs(char *)
シリアル送信器に(ROM)文字列を出力します。
- Serial_puti(long)
シリアル送信器に整数値を出力します。
- Serial_putf(float, byte)
シリアル送信器に実数値を出力します。2つ目の引数は小数点以下の桁数を指定します。(PICSYS16では利用できません)
- Serial_overrun()
シリアル受信器のオーバーランエラーを解除します。
- Serial_reset()