isr.c

来自「《嵌入式系统-使用HCS12微控制器的设计与应用》在CodeWarrior开发环」· C语言 代码 · 共 34 行

C
34
字号
//-------------------------------------------------------------------------*
//文件名:isr.c                                                             *
//功  能:用于定义中断子函数                                                *
//-------------------------------------------------------------------------*

//头文件
#include "isr.h"      //中断处理函数头文件

extern INT16U g_Count;    //用于脉冲计数的变量

#pragma CODE_SEG __NEAR_SEG NON_BANKED 

//ISR_PA:有效沿跳变捕捉中断处理函数----------------------------------------*
//功  能:捕捉到有效沿时,清PAIF标志位,并将当前的计数值存入全局变量g_Count *
//说  明:全局变量g_Count:记录当前的脉冲累加器计数值                        *
//-------------------------------------------------------------------------*
__interrupt 18 void ISR_PA(void)
{
    DISABLE_INTERRUPTS;    //禁止中断
    PAFLG |= (1<<PAIF);    //清空标志位
    g_Count = PACN32;      //读取计数值,必须一次性读完
    ENABLE_INTERRUPTS;     //开中断
}

//ISR_PAOV:脉冲累加器A计数器溢出中断处理函数-------------------------------*
//功  能:脉冲累加器A计数器发生溢出时,清PAOVF标志位                        *
//-------------------------------------------------------------------------*
__interrupt 17 void ISR_PAOV(void)
{
    DISABLE_INTERRUPTS;     //禁止中断
    PAFLG |= (1<<PAOVF);    //清空标志位
    ENABLE_INTERRUPTS;      //开中断
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?