cosmos v4仕様
・ハードウェア PIC18F14K50 12MHzレゾネータ USBコネクタ 他 (詳細は回路図参照) ・通信仕様 USBによるCOMポートエミュレータ ・出力端子 デジタル 8ポート PWM/デジタル 1ポート ・入力端子 デジタル 1 ・その他端子 デジタル入出 1 デジタル入出/アナログ2 ・言語仕様 行番号 1~255 (10進数) 定数 0~255 (10進数)、0b0~0b11111111 (2進数)、0x0~0xFF (16進数) (Lコマンドでリスト表示の際は全て10進数で表示される) 変数 A,B,C,D,E,F,G,%,@,O,I,X,Y,Z,$,# (A~Gは汎用、%,@,O,I,X,Y,Z,$,#は機能変数) 比較演算子 =,<,>,<>,<=,>= 演算子 +,-,*,/,|,&,^ >< bit指定 0~7 代入 [変数]=[定数] [変数]=[変数] 演算 [変数][演算子][定数] [変数][演算子][変数] 比較判定 ?[変数][比較演算子][定数] (比較結果が真ならば次行を実行) ?[変数][比較演算子][変数] ビット操作 [変数][bit指定]=0 [変数][bit指定]=1 ビット判定 ?[変数][bit指定]=0 (比較結果が真ならば次行を実行) ?[変数][bit指定]=1 ラベル 0:~255: GOTO #=[行番号] #=[ラベル]: CALL #:[行番号] #:[ラベル]: 割込先設定 Y=[行番号] Y=[ラベル]: RETURN #:$ (割り込みからの復帰にも使用) 変数値表示 [変数]? (変数を10進数で端末に表示) [変数]?B (変数を2進数で端末に表示) [変数]?H (変数を16進数で端末に表示) [変数]?- (変数を10進数で端末に表示、改行無し、?B-, ?H-も可能) 全変数表示 ? (全変数を10進数で端末に表示) BREAK ! (ブレイクポイント デバッグ用) END . (プログラムの終了) 機能変数 % @ の機能選択用変数 @ % で指定された機能アクセス用変数 O デジタル出力変数(出力ポート) I デジタル入力変数(入力ポート)、書込み時は書込まれた数値 * 0.1sec の待ち動作 X アナログ0入力変数(アナログ0)、書込み時は書込まれた数値がPWM値となる Y アナログ1入力変数(アナログ1)、書込み時は書込まれた数値がタイマー割り込み先の行番号となる Z 端末文字入出力 $ スタック変数(16段) # プログラムカウンタ ・特殊命令 WD[定数] 定数 x 1/10秒待つ(指定できる数は0~63) WS[定数] 定数秒待つ(指定できる数は0~63) WM[定数] 定数分待つ(指定できる数は0~63) WH[定数] 定数時間待つ(指定できる数は0~63) VR[定数] 出力の右回転(定数はスピード指定、指定できる数は1~63) VL[定数] 出力の左回転(定数はスピード指定、指定できる数は1~63) V0 出力の回転停止 S[音階] 簡易発音(音階指定は1~63、別表参照) S0 発音停止 P0 リモコン信号受信をオフ P1 リモコン信号を検出するまで待つ(注:プログラム実行中以外は赤外線は受信できない) ・コマンド R 先頭から実行(RUN) R10 10行目から実行 L プログラム全体表示(LIST) L02 2行目以降の内容表示 NA プログラム全体消去(NEW) N02 2行目以降のプログラム消去 Ctrl+C 実行停止 Ctrl+B スキップ実行 Ctrl+A 実行再開 ・入力アシスト Q[開始行番号],[ステップ数] 行番号入力アシスト 例) Q10,5 10から5刻みで行番号を自動生成する >10 _ Qのみの入力でアシスト終了 ・機能レジスタ(%でアドレス指定後、@でアクセスする) 00~3F R/W 汎用メモリー64byte 40~7F R/W 汎用メモリー64byte(注意:Program Flash の書き換え時に使用される。オプション機能によっては特別な働きをする。) 80 R/W 各種動作モードの設定 81 R/W 演算結果上位バイト(乗除算) 82 R/W 演算結果下位バイト 83 R/W 除算あまり 84 R/W 乱数(Read時に特殊処理) 85 R/W タイマーによる減算変数(0で停止) 86 R/W アナログ0モード設定(x0:Vref=Vcc、x1:Vref=1.024V、x2:Vref=2.048V、x3:Vref=4.096V、x4:温度変換、x8:デジタル) アナログ1モード設定(0x:Vref=Vcc、1x:Vref=1.024V、2x:Vref=2.048V、3x:Vref=4.096V、4x:温度変換、8x:デジタル) 87 R/W アナログ変換結果上位バイト 88 R/W アナログ変換結果下位バイト(bit7,6のみ有効) 89 R/W 時間(0~24) 8A R/W 分(0~59) 8B R/W 秒(0~59) 8C R/W 1/100秒(0~99) 8D 8E 8F R/W PWM周波数(初期値=FF)(83.33nsec * (255(FFh) + 1) * 16(T2 Pre)=341.33usec→2929.6875Hz) 90 R/W IR ステータス 91 R/W IR データ0 92 R/W IR データ1 93 R/W IR データ2 94 R/W IR データ3 95 R/W IR データ4 96 R/W IR データ5 97 R/W IR データ6 98 R/W IR データ7 99 R/W IR ビット数 9A R/W 減算時間(0~24) WAIT WHn で使用 9B R/W 減算分(0~59) WAIT WMn で使用 9C R/W 減算秒(0~59) WAIT WSn で使用 9D R/W 減算1/100秒(0~99) WAIT WDn で使用 9E R/W TIMER時間設定 H(初期値=6D)(10000h - 6D84h = 927Ch→37500 * 83.33nsec * 8(T1 Pre)=0.025sec) 9F R/W TIMER時間設定 L(初期値=84) A0 W/R init_i2c / Ack Flag 読み出し(0:Ack無し, 1:Ack有り) A1 W start_i2c A2 W restart_i2c A3 W stop_i2c A4 W send_data A5 R receive_data A6 R receive_last_data B0~DF ?/? Option機能使用時の設定用 E0 W EEPROM アドレス(00~ff:256byte)(EEPROMには寿命があります。約100万回の書込み保障) E1 R/W EEPROM データ (アドレス(E0)自動加算(ffで加算停止)) F0 W Program Flash アドレスhi(書き換え可能エリア:3a00~3fff)(Program Flashには寿命があります。約10万回の書込み保障) F1 W Program Flash アドレスlo F2 R/W Program Flash データ F3 W 55, AA の書き込みで Program Flash への書き込み実行(32byteごとに実行すること)