受け取りのコントローラのプログラム

Dependencies:   TextLCD mbed MultiSerial Pswitch_Lib

Committer:
lilac0112_1
Date:
Thu Oct 16 11:00:30 2014 +0000
Revision:
10:8b49bbf4c0c9
Parent:
3:cfd7cd361088
Add new a bit data.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lilac0112_1 2:7820849bf534 1 仕様書
lilac0112_1 3:cfd7cd361088 2 ●マイコンのピンの使用状況
lilac0112_1 2:7820849bf534 3 ピン 接続先 備考
lilac0112_1 2:7820849bf534 4 p4 プッシュスイッチ リセットボタン
lilac0112_1 2:7820849bf534 5 p5 トグルスイッチ
lilac0112_1 3:cfd7cd361088 6 p6 黄色LED
lilac0112_1 2:7820849bf534 7 p7 右十字キー 予約
lilac0112_1 3:cfd7cd361088 8 p8 右十字キー 黄
lilac0112_1 2:7820849bf534 9 p9 スライドスイッチ>Xbee 送信
lilac0112_1 2:7820849bf534 10 p10 スライドスイッチ>Xbee 受信
lilac0112_1 3:cfd7cd361088 11 p11 右十字キー 赤
lilac0112_1 2:7820849bf534 12 p12 右十字キー 予約
lilac0112_1 2:7820849bf534 13 p13 スライドスイッチ>Xbee 送信
lilac0112_1 2:7820849bf534 14 p14 スライドスイッチ>Xbee 受信
lilac0112_1 3:cfd7cd361088 15 p15 右十字キー 緑
lilac0112_1 3:cfd7cd361088 16 p16 右十字キー 青
lilac0112_1 3:cfd7cd361088 17 p17 右サイドキー 赤
lilac0112_1 3:cfd7cd361088 18 p18 右サイドキー 青
lilac0112_1 3:cfd7cd361088 19 p19 左サイドキー 青
lilac0112_1 3:cfd7cd361088 20 p20 左サイドキー 赤
lilac0112_1 2:7820849bf534 21 p21 LCD d7
lilac0112_1 2:7820849bf534 22 p22 LCD d6
lilac0112_1 2:7820849bf534 23 p23 LCD d5
lilac0112_1 2:7820849bf534 24 p24 LCD d4
lilac0112_1 2:7820849bf534 25 p25 LCD e
lilac0112_1 2:7820849bf534 26 p26 LCD rs
lilac0112_1 3:cfd7cd361088 27 p27 左十字キー 青
lilac0112_1 3:cfd7cd361088 28 p28 左十字キー 緑
lilac0112_1 3:cfd7cd361088 29 p29 左十字キー 赤
lilac0112_1 3:cfd7cd361088 30 p30 左十字キー 黄
lilac0112_1 3:cfd7cd361088 31
lilac0112_1 3:cfd7cd361088 32 ●LCDの表示 ”Hello World!”
lilac0112_1 2:7820849bf534 33
lilac0112_1 3:cfd7cd361088 34 ●通信
lilac0112_1 3:cfd7cd361088 35 モジュール Xbee
lilac0112_1 3:cfd7cd361088 36 通信速度 9600bps
lilac0112_1 3:cfd7cd361088 37 データサイズ 2byte
lilac0112_1 3:cfd7cd361088 38 1byte目 十字キー
lilac0112_1 3:cfd7cd361088 39 2byte目 サイドキー
lilac0112_1 3:cfd7cd361088 40 ライブラリ MultiSerial.h
lilac0112_1 3:cfd7cd361088 41 キーコード 0xAA
lilac0112_1 3:cfd7cd361088 42 チェックコード 0x??^0x??^...
lilac0112_1 3:cfd7cd361088 43 ※ライブラリでは割り込みを使っています.
lilac0112_1 3:cfd7cd361088 44 ライブラリ作成者が参考にした割り込みの関数とそれに使ったマクロ定義,変数宣言が以下に記されています.
lilac0112_1 3:cfd7cd361088 45 ライブラリを使用しない場合は参考にしてください.
lilac0112_1 3:cfd7cd361088 46 ____________________________________________
lilac0112_1 3:cfd7cd361088 47 #define DATA_NUM 8+2//2byte→KEYCODEとCHECKCODE 8byte→やりとりするデータ
lilac0112_1 3:cfd7cd361088 48 #define TX_KEYCODE 0xBB//あちらのKEYCODE
lilac0112_1 3:cfd7cd361088 49 #define RX_KEYCODE 0xAA//こちらのKEYCODE
lilac0112_1 3:cfd7cd361088 50 #define KEY 0//KEYCODEは配列の最初
lilac0112_1 3:cfd7cd361088 51 #define CHECK DATA_NUM-1//CHECKCODEは配列の最後
lilac0112_1 3:cfd7cd361088 52 volatile uint8_t INdata[DATA_NUM]={0}, EXdata[DATA_NUM]={0};
lilac0112_1 3:cfd7cd361088 53 void TX(void){//送信バッファ空き割り込み用関数
lilac0112_1 3:cfd7cd361088 54
lilac0112_1 3:cfd7cd361088 55 static uint8_t Tx=DATA_NUM, i;
lilac0112_1 3:cfd7cd361088 56 static uint8_t TXdata[DATA_NUM]={TX_KEYCODE};
lilac0112_1 3:cfd7cd361088 57 static uint8_t TXcheckcode=0;
lilac0112_1 3:cfd7cd361088 58
lilac0112_1 3:cfd7cd361088 59 if(Tx >= DATA_NUM){
lilac0112_1 3:cfd7cd361088 60
lilac0112_1 3:cfd7cd361088 61 TXdata[KEY] = TX_KEYCODE;//Hello.
lilac0112_1 3:cfd7cd361088 62
lilac0112_1 3:cfd7cd361088 63 TXdata[1] = EXdata[1];
lilac0112_1 3:cfd7cd361088 64 TXdata[2] = EXdata[2];
lilac0112_1 3:cfd7cd361088 65 TXdata[3] = EXdata[3];
lilac0112_1 3:cfd7cd361088 66 TXdata[4] = EXdata[4];
lilac0112_1 3:cfd7cd361088 67 TXdata[5] = EXdata[5];
lilac0112_1 3:cfd7cd361088 68 TXdata[6] = EXdata[6];
lilac0112_1 3:cfd7cd361088 69 TXdata[7] = EXdata[7];
lilac0112_1 3:cfd7cd361088 70 TXdata[8] = EXdata[8];
lilac0112_1 3:cfd7cd361088 71 //送信するデータ = メインで処理されたデータ
lilac0112_1 3:cfd7cd361088 72
lilac0112_1 3:cfd7cd361088 73 for(i=KEY+1, TXcheckcode=0; i<CHECK; i++){//CHECKCODEの生成
lilac0112_1 3:cfd7cd361088 74 TXcheckcode ^= TXdata[i];
lilac0112_1 3:cfd7cd361088 75 }
lilac0112_1 3:cfd7cd361088 76
lilac0112_1 3:cfd7cd361088 77 TXdata[CHECK] = TXcheckcode;//Good bye.
lilac0112_1 3:cfd7cd361088 78 Tx=0;//配列をリセット
lilac0112_1 3:cfd7cd361088 79
lilac0112_1 3:cfd7cd361088 80 }
lilac0112_1 3:cfd7cd361088 81 Xbee.putc(TXdata[Tx]);//データを送信する
lilac0112_1 3:cfd7cd361088 82 Tx++;//配列を入れ替える
lilac0112_1 3:cfd7cd361088 83
lilac0112_1 3:cfd7cd361088 84 }
lilac0112_1 3:cfd7cd361088 85 void RX(void){//受信割り込み用関数
lilac0112_1 3:cfd7cd361088 86
lilac0112_1 3:cfd7cd361088 87 static uint8_t Rx=0, i;
lilac0112_1 3:cfd7cd361088 88 static uint8_t RXdata[DATA_NUM]={RX_KEYCODE};
lilac0112_1 3:cfd7cd361088 89 static uint8_t RXcheckcode=0;
lilac0112_1 3:cfd7cd361088 90
lilac0112_1 3:cfd7cd361088 91 RXdata[Rx] = Xbee.getc();//データを受け取る
lilac0112_1 3:cfd7cd361088 92
lilac0112_1 3:cfd7cd361088 93 if(RXdata[KEY]==RX_KEYCODE){//KEYCODEが一致したら配列を入れ替える
lilac0112_1 3:cfd7cd361088 94 Rx++;
lilac0112_1 3:cfd7cd361088 95 }
lilac0112_1 3:cfd7cd361088 96
lilac0112_1 3:cfd7cd361088 97 if(Rx==CHECK){//CHECKCODEの生成
lilac0112_1 3:cfd7cd361088 98 for(i=KEY+1, RXcheckcode=0; i<CHECK; i++){
lilac0112_1 3:cfd7cd361088 99 RXcheckcode ^= RXdata[i];
lilac0112_1 3:cfd7cd361088 100 }
lilac0112_1 3:cfd7cd361088 101 }
lilac0112_1 3:cfd7cd361088 102
lilac0112_1 3:cfd7cd361088 103 if(Rx >= DATA_NUM){
lilac0112_1 3:cfd7cd361088 104 if(RXdata[CHECK]==RXcheckcode){//CHECKCODEが合致したらデータを適用する
lilac0112_1 3:cfd7cd361088 105
lilac0112_1 3:cfd7cd361088 106 INdata[1] = RXdata[1];
lilac0112_1 3:cfd7cd361088 107 INdata[2] = RXdata[2];
lilac0112_1 3:cfd7cd361088 108 INdata[3] = RXdata[3];
lilac0112_1 3:cfd7cd361088 109 INdata[4] = RXdata[4];
lilac0112_1 3:cfd7cd361088 110 INdata[5] = RXdata[5];
lilac0112_1 3:cfd7cd361088 111 INdata[6] = RXdata[6];
lilac0112_1 3:cfd7cd361088 112 INdata[7] = RXdata[7];
lilac0112_1 3:cfd7cd361088 113 INdata[8] = RXdata[8];
lilac0112_1 3:cfd7cd361088 114 //メインで処理されるデータ = 受け取ったデータ
lilac0112_1 3:cfd7cd361088 115
lilac0112_1 3:cfd7cd361088 116 }
lilac0112_1 3:cfd7cd361088 117 Rx=0;//配列をリセット
lilac0112_1 3:cfd7cd361088 118 }
lilac0112_1 3:cfd7cd361088 119
lilac0112_1 3:cfd7cd361088 120 }
lilac0112_1 3:cfd7cd361088 121 ________________________________________________________
lilac0112_1 3:cfd7cd361088 122 ●ハード
lilac0112_1 2:7820849bf534 123 基板データは共有PCのデスクトップに乗せてあります.