実機が無いので、確認しようが無いがR8C側の受信処理検討。
こんな感じの接続を想定
プロトタイプ宣言に追加
void CamCommProcess( void );
グローバル変数追加
/* カメラとの通信用等*/
unsigned char cam_read_u ; /* 同期信号上りエッジフラグ保存用 */
unsigned char cam_trace ; /* トレースデータ保存用 */
関数を追加する(P7_0とP7_1がデジタルとして取得できるかは未確認)
void CamCommProcess( void )
{
unsigned char cam_tmp=0;
/*センサデータ取得(トレース) 上りエッジ*/
if(cam_read_u==1 && (p0_3 & 0x01)==0x00 ){cam_read_u=0;}
if(cam_read_u==0 && (p0_3 & 0x01)==0x01 ){//ポート0 bit3の立上りで取り込み
cam_read_u=1;
cam_tmp= (p1_6 & 0x01) + (p1_7 & 0x01)*2 + (p7_0 & 0x01)*4 + (p7_1 & 0x01)*8 +
(p0_0 & 0x01)*16 + (p0_1 & 0x01)*32;
cam_trace=cam_tmp;
}
}
mainループで関数を常に呼ぶ。
while( 1 ) {
CamCommProcess();
switch( pattern ) {
getAnalogSensor関数を書き換える
int getAnalogSensor( void )
{
int ret;
if(cam_trace!=63){
ret = cam_trace - 31 ;//中心が31の場合
}else{
ret = 0;//とりあえず今回は0にしておく
}
if( !crank_mode ) {
//なんか処理追加
}
return ret;
}