「音声合成LSI 7 発声開始」の続きです。 前回の処理を受けて「音声合成LSI 5 データ送信」に紹介したプログラムが音声フレーズ・データを送信し終えると、音声合成LSI が発声を初め、発声が終わると Ready ( 3EH )を返してきます。 受信割り込みで Ready を確かめて一連の処理を終了する部分について説明します。 <PICデバイス=18F1320> 音声合成LSI は、株式会社アクエスト製 AquesTalk pico  ATP3011F4-PU です。

下図は USART 受信割り込み処理のアセンブラ・ソース( intlow.asm の一部)です。
割り込みフラグをクリアした後で、読み出した受信データが 3EH と一致すると tlkflg をクリアして割り込み処理を終えます。 25行目の CPFSEQ tlkrdy ですが、tlkrdy の値は3EH です。( intdef.asm で初期化)

intlrc_intlow

tlkflg の bit7=0 とすることで、音声合成LSI に関する処理が終了したことを知らせます。 tlkflg の仕組みは「音声合成LSI 4 フラグ」に説明しています。

上のプログラムは、下図フローに色付きで示した「割り込み処理」の部分です。 前後にレジスターの退避/復旧がある他、割り込み要因(例:TIMER2 , TIMER0 , INT2 , 受信)毎に分岐して処理されます。
ただし、割り込み要因が唯一であって、他の割り込みが発生し得ない場合は、割り込み要因による分岐を省略できます。

割り込みフロー


次回、音声データ及びリモコンのテーブルを紹介して音声合成LSI 関連記事を終了予定です。


音声合成LSI 関連記事のインデックスはこちら → 音声合成LSI 


楽々PIC」は楽しい道具を作りながら学ぶブログを目指します。