お待たせしていましたが、PICSYS18-1.00RCでは、やっとUSB(CDC)が使えるようになりました。PICSYS18-XBEEでこの機能を利用すると、PC-XBEE接続も以下のように簡単に記述できます。(データをリレーしてるだけだけどね。。。:-P)
PICSYS18-XBEEへのXBEEの搭載例
Arduinoと異なり、PICSYS18-XBEEのUSB通信路とXBEEへのシリアル通信路は完全に独立しているので、ブートローダーによるMCUへのプログラムの書き込み時にXBEEの接続回路を変更する必要もないし、XBEEとUSB経由のPCとの連携も簡単に行えます。
#include "picsys18.h" void setup() { pinMode(LED1, OUTPUT) ; pinMode(LED2, OUTPUT) ; digitalWrite(LED1, LOW) ; // ハートビート表示 digitalWrite(LED2, LOW) ; // USB接続の状態表示 USB_begin() ; // PCとのUSB接続を開く Serial_begin(9600) ; // XBEEへのシリアル接続を開く } void loop() { int c ; if (USB_attached()) { // USB接続を確認 digitalWrite(LED2, HIGH) ; // XBEEからPCへ while (Serial_available()) { c = Serial_getc() ; USB_putc(c) ; #if defined(ADD_NL) if (c == '\r') { USB_putc('\n') ; } #endif } // PCからXBEEへ while (USB_available()) { c = USB_getc() ; Serial_putc(c) ; } } else { digitalWrite(LED2, LOW) ; } digitalWrite(LED1, ((int)millis()) & 0x200); // ハートビート:約1秒 }
X-CTUでの接続も、ほらこの通り :-)
X-CTUでの接続例