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){}の中に割り込みで処理する内容を記述すれば完成です。
スポンサーリンク
関連記事