JH7UBCブログ

アマチュア無線 電子工作 家庭菜園など趣味のブログです

PIC12F1822 MCC Timer Interrupt

2021-05-23 14:24:19 | MPLAB X MCC
 PIC12F1822を使って、MPLAB X MCCを利用して割込み設定のテストをします。
 まず、タイマー割込みのテストで、16bitタイマーTMR1を使ったLED点滅(Lチカ)をやってみます。

 RA0に接続したLEDをTMR1から500msごとに割込みをかけ、割込みのたびに点灯、消灯を交互に行い点滅させます。


まず、System Moduleの設定です。
INTOSC,FOSC,Clock 500KHzのデフォルトのままです。
Low-voltage Programingだけチェックを外しました。

TMR1モジュールを組み込み、Timer Periodを500msに設定します。
Enable Timer Interruptにチェックを入れます。

MCCのGenerateをクリックして、各ファイルを生成し、MCCを終了します。

プログラムです。
--------------------------------------------------------
/*
PIC12F1822 Timer Interrupt test
* 2021.5.22
* JH7UBC Keiji Hata
*/
#include "mcc_generated_files/mcc.h"

#define LED LATA0
volatile unsigned char val = 0;

// Interrupt Service Routine
void ISR(){
val = !val;
LED = val;
}

void main(void)
{
SYSTEM_Initialize(); // initialize the device

TMR1_SetInterruptHandler(ISR);

INTERRUPT_GlobalInterruptEnable();

INTERRUPT_PeripheralInterruptEnable();

LED = 0;
while (1)
{
}
}
-------------------------------------------------------------------

ブレッドボードです。

 500ms(0.5s)ごとに点滅しました。