2015年2月8日日曜日

妖怪ウオッチ零式 プログラム編 メダルデータ出力

メダルデータの出力は、AVR2313のポートと
妖怪ウオッチのメダル識別SWをつないで行います。PORT出力”1”でSW ONです。
PORTDのPD0→S3
PORTDのPD1→S4
PORTDのPD2→S5
PORTDのPD3→S6
 メダル投入時にメダルパターンを4列分出力した後は
メダルぬき出しとして必ず先の逆の順序で4列のパターンを
出力してやらなければ、ウオッチは混乱してしまいます。
連続して妖怪を召還したいので、次のメダルパターンを出力する前に、ちょくぜんのメダルパターンを逆出力して、自動抜き出し動作することにします。
そのために、メダルパターンを取りだして置いておく場所を用意します。
//メダルSW出力メダルパターン格納バッファ
unsigned char pat_buff[4]={0,0,0,0b1010};
固定値のターミネータ0b1010は先に入れておきます。
先頭から3バイトには登録してあるメダルデータを取り出し格納します。
メダル投入(召還)、抜きだし処理は、ここのデータを参照してポートに出力します。

出力タイミングは以下のようにしました。
PORTD=pat_buff[0];
_delay_ms(60);
PORTD=0;
_delay_ms(60);
PORTD=pat_buff[1];
_delay_ms(60);
PORTD=0;
_delay_ms(60);
PORTD=pat_buff[2];
_delay_ms(60);
PORTD=0;
_delay_ms(60);
PORTD=pat_buff[3];
_delay_ms(60);
PORTD=0;

またメダルの抜き出し時には、抜き出し音声が発生するので。
抜き出し出力処理
_delay_ms(2000);
次の召還出力処理
 と言うように、抜き出し音声の終了を待ってから次の召還を行います。
戻る

0 件のコメント:

コメントを投稿