TOP > PICC Lite編(PIC16F84A) > LEDを点滅させる(TMR0割込み,PIC16F84A PICC-Lite)> ソース
− TMR0割込み −
(PIC16F84A PICC-Lite)
更新日2009.9.22
以下のソースを取り込んで、コンパイル→PIC書き込み→実行して下さい。
// ========================== ここから ============================== // ファイル名 timer0.c // 作成日 2009.8.22 // 作成者 mit.ueno // 機種 PIC16F84A // CLOCK 20MHz // コンパイラ PICC-Lite // 概要 // TMR0のテスト // PORTBのLEDを500mS間隔で点滅させる //TMR0割り込み // 1/20MHz*4*64*256=3.2768mS // TMR0割込み内で500mSの時間を作る //I/Oポート // RB3:LED // #include "pic.h" __CONFIG(HS & WDTDIS & PWRTEN & UNPROTECT); static bit T500mS; // 500mS経過フラグ static unsigned char cnt500mS; // 500mSカウンタ // =================== 割り込み処理 ==================== static void interrupt intr(void) { T0IF = 0; // TMR0割り込みクリア cnt500mS--; if (cnt500mS == 0) { cnt500mS = 153; // 3.2768mS*153=501mS T500mS = 1; // 500mSフラグセット } } // ==================== メイン処理 ======================= main() { TRISB = 0xF7; // RB3:output OPTION = 0x85; // プリスケーラ:64 TMR0 = 0x00; T0IE = 1; // TMR0割り込み許可 GIE = 1; // 全体割り込み許可 PORTB = 0x00; cnt500mS = 153; // 3.2768mS*153=501mS T500mS = 0; while(1) { if (T500mS) { T500mS = 0; PORTB ^= 0x08; // RB3のLEDを点滅 } } } // ========================== ここまで ==============================