「音声合成LSI 4 フラグ」の続きです。 今回は、実際に音声データを送信しているプログラムについて説明します。 音声データに限らず、USART 送信プログラムに共通する内容です。 <PICデバイス=18F1320> 音声合成LSI は、株式会社アクエスト製 AquesTalk pico ATP3011F4-PU です。
下図は、TIMER2 低位割り込み中に CALL される送信プログラムのアセンブラ・ソース( tlks.asm の一部)です。
最初に、メイン処理で使われているテーブル・データ用ポインターを退避して、音声合成データ・テーブルのポインターを復旧します。(34~39行目)
続いて、テーブル・ポインター・アドレスから 1byte を送信し、ポインターをインクリメント(+1)しています。(41~42行目) その後、送信データがCRコード( 0DH )であれば送信中フラグ( tlkflg<bit0> )をクリアして、次回 TIMER2 割り込みで talksend を CALL しないように設定します。(43~47行目)
44行目の tlkcr の値は 0DH です。( intdef.asm で初期化)
49~51行目は、CRコードと異なる 1byte データを送信する時(ブレーク・コマンド)の為に準備しましたが、今回は使っていません。
最後に、音声合成用テーブル・ポインターを退避して、上図プログラム実行前の値に復旧します。
下図はTIMER2 割り込み処理の中にあって、上のプログラムを CALL している部分( intlow.asm の一部)です。 tlkflg<bit1>が 1 の時だけ前述のサブルーチン tlksend を CALL します。
tlkflg を使ったプログラム制御の仕組みについては「音声合成LSI 4 フラグ」をご覧下さい。
音声合成LSI 関連記事のインデックスはこちら → 音声合成LSI
「楽々PIC」は楽しい道具を作りながら学ぶブログを目指します。
記事検索
最新記事
内部リンク
人気記事
アンケートに御協力下さい
外部リンク
アーカイブ
楽々PIC 宛てBlogMail
--- ご了承下さい ---
注意して記事を書いていますが、記事及びリンク先の情報による不利益について、一切責任を負い(負え)ません。
--- ご了承下さい ---
注意して記事を書いていますが、記事及びリンク先の情報による不利益について、一切責任を負い(負え)ません。
QRコード
アクセスカウンター
バナーを作成
プロフィール
jyosou_robot