RaspberryPiの送信側はAVRと共通化出来そうな部分があまりないので、以前からあるFormatAEHA,FormatNEC,FormatSONYはそのままで変更せずにFormatOtherのみ最新のフォーマットに合わせて変更しました。CodeExpandOther()の部分になります。
最初にコードをheader部、PatternTable部、Code部に分けて処理しています。
Code部をビットパターンとそれ以外の処理に分けて、ビットパターンの場合1ビットずつ取り出して0/1のHigh区間、Low区間の長さ、それ以外の場合はPatternTableからHigh区間、Low区間の長さを取り出しHigh区間の間は1CLK毎にHigh/Lowを繰り返し、Low区間の間はLowを繰り返します。
High区間のところをHigh/Lowを繰り返しているのは赤外線LEDを38KHzのサブキャリアに載せた形で出力されるようにするためです。(76KHzでPCM audio I/Fから出力しているためHigh/Lowを繰り返すと38KHzの波形になる)
これらの処理をCode部が終わるまで繰り返しPCMBufferに書き出します。
他のフォーマットは以前のままなので変更なしです。
それぞれのフォーマットのコードをPCMのデータに変換したあと、PCMWrite()をリピート回数分繰り返しPCM audio I/Fからの出力で赤外線LEDをドライブします。
これらのコードはここにあります。
0 件のコメント:
コメントを投稿