2013年5月26日日曜日

PIC C18 メモ(割り込みを使った一文字受信ができない)

-----------------------------
割り込みコンテキスト保存
2006.11.20
-----------------------------
static char ReturnData;        //これを割り込み側で読み取るのは可

static char ReceiveData;        //受信データをここへ返してほしい
#pragma inturrupt Ack_spi;
void Ack_spi(void)
{
 RcvData=SSPBUF;
};
  • 上のようにグローバル変数に受信バッファからRcvData へ保存しても
    割り込み処理(ISR)側で割り込み処理ルーチンから外れるとクリアされてしまう
  • プロトタイプ宣言に save=RcvData を書き加えるだけでいい
    #pragma inturrupt Ack_spi save=RcvData;

凡人なので日本語マニュアルに例題まで上げて何ページも割いて解説してあるにもかかわらず、その場面になって調べないと身につかないというお粗末。
2013.05.26