PICマイコン(12F683)で割り込み処理をやってみた
PICマイコン(12F683)で割込み処理をやってみました。
私の備忘録も兼ねてブログに貼っておきたいと思います。
一定周期で割り込み処理を行うプログラムです。
目次
スポンサーリンク
ソースコード
// PIC12F683 Configuration Bit Settings // 'C' source line config statements #include <xc.h> // #pragma config statements should precede project file includes. // Use project enums instead of #define for ON and OFF. // CONFIG #pragma config FOSC = INTOSCIO // Oscillator Selection bits (INTOSCIO oscillator: I/O function on RA4/OSC2/CLKOUT pin, I/O function on RA5/OSC1/CLKIN) #pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT enabled) #pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled) #pragma config MCLRE = ON // MCLR Pin Function Select bit (MCLR pin function is MCLR) #pragma config CP = OFF // Code Protection bit (Program memory code protection is disabled) #pragma config CPD = OFF // Data Code Protection bit (Data memory code protection is disabled) #pragma config BOREN = ON // Brown Out Detect (BOR enabled) #pragma config IESO = ON // Internal External Switchover bit (Internal External Switchover mode is enabled) #pragma config FCMEN = ON // Fail-Safe Clock Monitor Enabled bit (Fail-Safe Clock Monitor is enabled) #define _XTAL_FREQ 4000000 // delay_ms(x) のための定義 //割り込み処理 void interrupt ISR(void) { GIE = 0; //割り込みを拒否する //TMR0の割り込み処理 if(T0IF) { } T0IF = 0; //割り込みフラグをリセット GIE = 1; //割り込みを許可 } void main(void) { //初期設定 TRISIO = 0b00000000; //ピンを全て出力に設定 OSCCON = 0b01100000; //クロックの設定 ANSEL = 0b00000000; //全てのピンをデジタル入出力に設定 OPTION_REG = 0b00000111; //オプション設定 //TMR0の設定 INTCON = 0b10100000; //TMR0の割り込みを許可 while(1); }
これで割り込み処理ができました( ^ω^ )
ポイント
関数ISR(void)の中のif(T0IF){}の中に割り込みで処理する内容を記述すれば完成です。
スポンサーリンク
関連記事