/***********************************************************************/ /* */ /* FILE :t_storm_14th_v2.c */ /* DATE :Sun, Oct 05, 2008 */ /* DESCRIPTION :main program file. */ /* CPU GROUP :26 */ /* */ /* This file is generated by Renesas Project Generator (Ver.4.8). */ /* */ /***********************************************************************/ ///////////////////////////////////////////////////////////////////////////// // // このプログラムは、KCB-1とRCB-3を接続し、起動時に予め登録された // スタートアップモーションを再生後、KCB-1のPIOに接続した16進スイッチ // の値を読み込み、予め登録されたモーションを再生します。 //  // スイッチの値は、0〜15となるが、0の場合は何もしません。 // 1〜15にモーションを設定します。 // // このプログラムは、シナリオ再生用に追加した関数が定義されている // rcb3sub.hをインクルードする必要があります。 // // 注意 // // このプログラムは、KCB-1とRCB-3を高速シリアルで接続した環境で使用します。 // KCB-1とRCB-3は、クロスケーブルにて接続すること。 // // また、RCB-3は下記のように設定すること // @モーションデータ再生終了を知らせる:ON // A電源投入時のモーション再生:OFF // ///////////////////////////////////////////////////////////////////////////// #include #include #include #include // 変数定義 BYTE motNo = 0; // モーションNo BYTE sw_inpt[8]; // スイッチ入力データ /// モーション定義 BYTE start_no = 80; // スタートアップモーションNo // スイッチに対応するモーション定義 //           No1 No2 No3 No4 No5 No6 No7 No8 No9 No10 No11 No12 No13 No14 No15 BYTE play_no[15] = { 1, 2, 81, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }; // プロトタイプ宣言 void sw_read(); // スイッチ入力チェック処理 void motion_play(unsigned int); // モーション再生 void main(void) { BYTE i; cpu_init(); // CPU初期化 pu16 = 1; pu17 = 1; pu20 = 1; ledgrn_on(); // 緑LED点灯 wait(300000); // 安定待ち用ウェイト if(rcb3_open(start_no) == FALSE) { // RCB3とポートを接続します return; // 再生できなかった場合 } // 赤LEDを点灯し、プログラム終了 // デジタルスイッチ読込 sw_read(); if(sw_inpt[3] == 0) motNo = 8; if(sw_inpt[2] == 0) motNo = motNo + 4; if(sw_inpt[1] == 0) motNo = motNo + 2; if(sw_inpt[0] == 0) motNo = motNo + 1; if((motNo > 0)&&(motNo<16)) motion_play(motNo); while(1) { } } // デジタルスイッチ読込処理 void sw_read() { // PIOの状態読込 sw_inpt[0] = pio0_in(); sw_inpt[1] = pio1_in(); sw_inpt[2] = pio2_in(); sw_inpt[3] = pio3_in(); } // // 操作されたボタンに対応するモーション再生関数 // void motion_play( WORD sw_no // スイッチNo:(1〜15) ) { switch(sw_no) { case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 10: case 11: case 12: case 13: case 14: case 15: ledred_on(); if(play_no[sw_no-1] > 80) rcb3_scenario_play(play_no[sw_no-1]); // シナリオ再生 else rcb3_motion_play(play_no[sw_no-1]); // モーション再生 ledred_off(); break; default: break; } }