MCCでMCCP1を追加。
あいかわらず無愛想だ... データシートも読む。16Bitだと,複雑なタイマーも仕掛けられるようだが,今回は10msecごとの単純なタイマー割り込みなので,設定が簡単そうな32bitを選択。
Primary Timer Period だけを示せばようだ。
その上,FOSC/2 -> 16MHz がもとのクロックなので,10msec / (1/16MHz) = 160000(dec) = 0x27100 が設定値。
そのタイマー処理だが,TMR1とは違って,main.cの中で定義できそうにない。やむを得ず,mccp1_tmr.c に記載する。
char _KEY_STATE = 0; void __attribute__ ((weak)) MCCP1_TMR_Timer32CallBack(void) { // Add your custom callback code here _KEY_STATE++; } |
そして main.cの処理 共通で使う変数をexternで記載する。これがわからなくて悩んだ... C言語の基本が...
extern char _KEY_STATE; (中略 RTCCで1秒おきに以下を実行) sprintf(d1,"KEY_STATE = %d",_KEY_STATE); _KEY_STATE=0; OLED_string(d1,0,16); OLED_write(); |
ふう。できた。
0 件のコメント:
コメントを投稿