はじめまして。天池といいます。
初めて投稿させて頂きます。よろしくお願いします。
わたしもYellowSoftの物を使っています。
以下の例はH8/3067の例なので雰囲気だけつかんでください。
3064でのレジスタはCPUのPDFを参照の事。
割り込み受信する手順としては
1.割り込みした時に飛ぶ関数を書く
YellowSoftさんのコンパイラでは関数名の前にinterruptと書きます。
interrupt void RXI0_Interrupt(void) {
unsigned char c;
while ((SSR0 & 0x40) == 0x40){ // RDRF(受信データフル)の確認
c = RDR0; // データ受信
SSR0 &= ~(0x40); // RDRFフラグをクリア
//・・・この後、cを使った処理を書く。バッファに入れるなど
}
}
2.該当するSCIの受信割り込みベクタを登録する
[設定]の中の割り込みタブの中で設定します。
ベクタ番号はCPUの割り込みコントローラのベクタアドレスを参照してください。
上の例なら関数はC言語、それと関数名を入れます。
3.初期設定を受信割り込み可能にし、_ei()で全ての割り込みを有効にする。
/* 関連レジスタの設定 */
SMR0 = 0x00; // 調歩同期 φ
BRR0 = 14; // 38400bps(18.432MHz)
#asm nop
SCR0 = 0x70; // 送受信 受信完了/エラー割り込み可能
_ei(); // 割り込みを有効にする
あとは3064用に書き換えてあげてください。
ではでは。
----
Takehiro Amaike <tanpa@xxxxxxxxx>