softya(ソフト屋) さんが書きました:ボーレートなどは一致していますか?
あと基本機能として「WRC-003テクニカルマニュアル」に書いている機能で通信できるみたいですが、それは出来ていますか?
ビットレートの事ですか?
実は大学の課題で明日までに提出なのです。課題の内容は温度計をマトリックスLEDでグラフ化し、その温度の上限の数値をキーボードの入力で設定し上限を超えたらブザーを鳴らすと言うものです。コピーされるのを恐れたので別のプログラムにして書きました。
コード:
#ifdef __cplusplus
extern "C" {
void abort(void);
#endif
void main(void);
#ifdef __cplusplus
}
#endif
/*インクルード***********************************************************/
// #include <sys/time.h>
#include<36064s.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <math.h>
#include "vs-wrc003.h"
/*マクロ***********************************************************/
/*グローバル変数***********************************************************/
/*メイン関数***********************************************************/
void main(void)
{
//制御周期の設定[単位:Hz 範囲:30.0~]
const BYTE MainCycle = 60;
// BYTE pitch = 16;
int L0[8],L1[8],L2[8],L3[8],L4[8],L5[8],L6[8],L7[8]; //温度data
int Max[8];
int Timer1 = 1; //スクロール間隔
int Timer2 = 1000; //data更新時間 後で10000にする
int ini=0;
int count;
Init((BYTE)MainCycle); //CPUの初期設定
while(1){ //メインループ
int data = AdRead(0); //センサの値を取得し,dataに代入 AN1=0,AN2=1,AN3=2
if(ini< 1){
L0[0] = 1;
L0[1] = 1;
L0[2] = 1;
L0[3] = 1;
L0[4] = 1;
L0[5] = 1;
L0[6] = 1;
L0[7] = 1;
L1[0] = 1;
L1[1] = 1;
L1[2] = 1;
L1[3] = 1;
L1[4] = 1;
L1[5] = 1;
L1[6] = 1;
L1[7] = 1;
L2[0] = 1;
L2[1] = 1;
L2[2] = 1;
L2[3] = 1;
L2[4] = 1;
L2[5] = 1;
L2[6] = 1;
L2[7] = 1;
L3[0] = 1;
L3[1] = 1;
L3[2] = 1;
L3[3] = 1;
L3[4] = 1;
L3[5] = 1;
L3[6] = 1;
L3[7] = 1;
L4[0] = 1;
L4[1] = 1;
L4[2] = 1;
L4[3] = 1;
L4[4] = 1;
L4[5] = 1;
L4[6] = 1;
L4[7] = 1;
L5[0] = 1;
L5[1] = 1;
L5[2] = 1;
L5[3] = 1;
L5[4] = 1;
L5[5] = 1;
L5[6] = 1;
L5[7] = 1;
L6[0] = 1;
L6[1] = 1;
L6[2] = 1;
L6[3] = 1;
L6[4] = 1;
L6[5] = 1;
L6[6] = 1;
L6[7] = 1;
L7[0] = 1;
L7[1] = 1;
L7[2] = 1;
L7[3] = 1;
L7[4] = 1;
L7[5] = 1;
L7[6] = 1;
L7[7] = 1;
ini++;
}
L7[0] = L6[0];
L7[1] = L6[1];
L7[2] = L6[2];
L7[3] = L6[3];
L7[4] = L6[4];
L7[5] = L6[5];
L7[6] = L6[6];
L7[7] = L6[7];
L6[0] = L5[0];
L6[1] = L5[1];
L6[2] = L5[2];
L6[3] = L5[3];
L6[4] = L5[4];
L6[5] = L5[5];
L6[6] = L5[6];
L6[7] = L5[7];
L5[0] = L4[0];
L5[1] = L4[1];
L5[2] = L4[2];
L5[3] = L4[3];
L5[4] = L4[4];
L5[5] = L4[5];
L5[6] = L4[6];
L5[7] = L4[7];
L4[0] = L3[0];
L4[1] = L3[1];
L4[2] = L3[2];
L4[3] = L3[3];
L4[4] = L3[4];
L4[5] = L3[5];
L4[6] = L3[6];
L4[7] = L3[7];
L3[0] = L2[0];
L3[1] = L2[1];
L3[2] = L2[2];
L3[3] = L2[3];
L3[4] = L2[4];
L3[5] = L2[5];
L3[6] = L2[6];
L3[7] = L2[7];
L2[0] = L1[0];
L2[1] = L1[1];
L2[2] = L1[2];
L2[3] = L1[3];
L2[4] = L1[4];
L2[5] = L1[5];
L2[6] = L1[6];
L2[7] = L1[7];
L1[0] = L0[0];
L1[1] = L0[1];
L1[2] = L0[2];
L1[3] = L0[3];
L1[4] = L0[4];
L1[5] = L0[5];
L1[6] = L0[6];
L1[7] = L0[7];
// clock_t t = clock();
// while (clock() - t < Timer2){
count=0; //10秒毎のdata更新
while(count<Timer2/Timer1/8){
count++;
// 0点灯 1消灯
// volatile unsigned int i;
// Sync(); //同期関数60Hz
if(data < 180){ //0度以下
L0[0] = 1;
L0[1] = 1;
L0[2] = 1;
L0[3] = 1;
L0[4] = 1;
L0[5] = 1;
L0[6] = 1;
L0[7] = 1;
}
else if(data <190){ //5度以上
L0[0] = 0;
L0[1] = 1;
L0[2] = 1;
L0[3] = 1;
L0[4] = 1;
L0[5] = 1;
L0[6] = 1;
L0[7] = 1;
}
else if(data < 220){ //10度以上
L0[0] = 0;
L0[1] = 0;
L0[2] = 1;
L0[3] = 1;
L0[4] = 1;
L0[5] = 1;
L0[6] = 1;
L0[7] = 1;
}
else if(data < 230){ //15度以上
L0[0] = 0;
L0[1] = 0;
L0[2] = 0;
L0[3] = 1;
L0[4] = 1;
L0[5] = 1;
L0[6] = 1;
L0[7] = 1;
}
else if(data < 240){ //20度以上
L0[0] = 0;
L0[1] = 0;
L0[2] = 0;
L0[3] = 0;
L0[4] = 1;
L0[5] = 1;
L0[6] = 1;
L0[7] = 1;
}
else if(data < 262){ //25度以上
L0[0] = 0;
L0[1] = 0;
L0[2] = 0;
L0[3] = 0;
L0[4] = 0;
L0[5] = 1;
L0[6] = 1;
L0[7] = 1;
}
else if(data < 267){ //30度以上
L0[0] = 0;
L0[1] = 0;
L0[2] = 0;
L0[3] = 0;
L0[4] = 0;
L0[5] = 0;
L0[6] = 1;
L0[7] = 1;
}
else if(data < 272){ //35度以上
L0[0] = 0;
L0[1] = 0;
L0[2] = 0;
L0[3] = 0;
L0[4] = 0;
L0[5] = 0;
L0[6] = 0;
L0[7] = 1;
}
else{ //40度以上
L0[0] = 0;
L0[1] = 0;
L0[2] = 0;
L0[3] = 0;
L0[4] = 0;
L0[5] = 0;
L0[6] = 0;
L0[7] = 0;
}
//0入力,1出力
IO.PDR7.BIT.B2 = 0;
IO.PDR7.BIT.B1 = 0;
IO.PDR7.BIT.B0 = 0;
IO.PDR5.BIT.B0 = L0[0];
IO.PDR5.BIT.B1 = L0[1];
IO.PDR5.BIT.B2 = L0[2];
IO.PDR5.BIT.B3 = L0[3];
IO.PDR5.BIT.B4 = L0[4];
IO.PDR5.BIT.B5 = L0[5];
IO.PDR5.BIT.B6 = L0[6];
IO.PDR5.BIT.B7 = L0[7];
Wait(Timer1);
IO.PDR7.BIT.B2 = 1;
IO.PDR7.BIT.B1 = 0;
IO.PDR7.BIT.B0 = 0;
IO.PDR5.BIT.B0 = L1[0];
IO.PDR5.BIT.B1 = L1[1];
IO.PDR5.BIT.B2 = L1[2];
IO.PDR5.BIT.B3 = L1[3];
IO.PDR5.BIT.B4 = L1[4];
IO.PDR5.BIT.B5 = L1[5];
IO.PDR5.BIT.B6 = L1[6];
IO.PDR5.BIT.B7 = L1[7];
Wait(Timer1);
IO.PDR7.BIT.B2 = 0;
IO.PDR7.BIT.B1 = 1;
IO.PDR7.BIT.B0 = 0;
IO.PDR5.BIT.B0 = L2[0];
IO.PDR5.BIT.B1 = L2[1];
IO.PDR5.BIT.B2 = L2[2];
IO.PDR5.BIT.B3 = L2[3];
IO.PDR5.BIT.B4 = L2[4];
IO.PDR5.BIT.B5 = L2[5];
IO.PDR5.BIT.B6 = L2[6];
IO.PDR5.BIT.B7 = L2[7];
Wait(Timer1);
IO.PDR7.BIT.B2 = 1;
IO.PDR7.BIT.B1 = 1;
IO.PDR7.BIT.B0 = 0;
IO.PDR5.BIT.B0 = L3[0];
IO.PDR5.BIT.B1 = L3[1];
IO.PDR5.BIT.B2 = L3[2];
IO.PDR5.BIT.B3 = L3[3];
IO.PDR5.BIT.B4 = L3[4];
IO.PDR5.BIT.B5 = L3[5];
IO.PDR5.BIT.B6 = L3[6];
IO.PDR5.BIT.B7 = L3[7];
Wait(Timer1);
IO.PDR7.BIT.B2 = 0;
IO.PDR7.BIT.B1 = 0;
IO.PDR7.BIT.B0 = 1;
IO.PDR5.BIT.B0 = L4[0];
IO.PDR5.BIT.B1 = L4[1];
IO.PDR5.BIT.B2 = L4[2];
IO.PDR5.BIT.B3 = L4[3];
IO.PDR5.BIT.B4 = L4[4];
IO.PDR5.BIT.B5 = L4[5];
IO.PDR5.BIT.B6 = L4[6];
IO.PDR5.BIT.B7 = L4[7];
Wait(Timer1);
IO.PDR7.BIT.B2 = 1;
IO.PDR7.BIT.B1 = 0;
IO.PDR7.BIT.B0 = 1;
IO.PDR5.BIT.B0 = L5[0];
IO.PDR5.BIT.B1 = L5[1];
IO.PDR5.BIT.B2 = L5[2];
IO.PDR5.BIT.B3 = L5[3];
IO.PDR5.BIT.B4 = L5[4];
IO.PDR5.BIT.B5 = L5[5];
IO.PDR5.BIT.B6 = L5[6];
IO.PDR5.BIT.B7 = L5[7];
Wait(Timer1);
IO.PDR7.BIT.B2 = 0;
IO.PDR7.BIT.B1 = 1;
IO.PDR7.BIT.B0 = 1;
IO.PDR5.BIT.B0 = L6[0];
IO.PDR5.BIT.B1 = L6[1];
IO.PDR5.BIT.B2 = L6[2];
IO.PDR5.BIT.B3 = L6[3];
IO.PDR5.BIT.B4 = L6[4];
IO.PDR5.BIT.B5 = L6[5];
IO.PDR5.BIT.B6 = L6[6];
IO.PDR5.BIT.B7 = L6[7];
Wait(Timer1);
IO.PDR7.BIT.B2 = 1;
IO.PDR7.BIT.B1 = 1;
IO.PDR7.BIT.B0 = 1;
IO.PDR5.BIT.B0 = L7[0];
IO.PDR5.BIT.B1 = L7[1];
IO.PDR5.BIT.B2 = L7[2];
IO.PDR5.BIT.B3 = L7[3];
IO.PDR5.BIT.B4 = L7[4];
IO.PDR5.BIT.B5 = L7[5];
IO.PDR5.BIT.B6 = L7[6];
IO.PDR5.BIT.B7 = L7[7];
Wait(Timer1);
} // 10秒毎のdata更新ループ
}
}
#ifdef __cplusplus
void abort(void)
{
}
#endif