isr.c

来自「picc_18v 8.35pl35 PIC18系列单片机开发C编译器」· C语言 代码 · 共 109 行

C
109
字号
#include <pic18.h>
#include "isr.h"

void interrupt low_priority LOW_ISR(void);
void interrupt HI_ISR(void);

void interrupt HI_ISR(void)
{
	if((TX2IE)&&(TX2IF)&&(TX2IP))
	{
		HIGH_INT_REG|=TX2MASK;		// register this interupt for display on LED
		TX2IF=0;
	}
	
	if((TMR2IE)&&(TMR2IF)&&(TMR2IP))
	{
		HIGH_INT_REG|=TMR2MASK;		// register this interupt for display on LED
		TMR2IF=0;
	}
	
	if((TMR3IE)&&(TMR3IF)&&(TMR3IP))
	{
		HIGH_INT_REG|=TMR3MASK;		// register this interupt for display on LED
		TMR3IF=0;
		TMR3H=0xF0;
	}
	
	if((TMR4IE)&&(TMR4IF)&&(TMR4IP))
	{
		HIGH_INT_REG|=TMR4MASK;		// register this interupt for display on LED
		TMR4IF=0;
	}
	
	if((CCP2IE)&&(CCP2IF)&&(CCP2IP))
	{
		HIGH_INT_REG|=CCP2MASK;		// register this interupt for display on LED
		CCP2IF=0;
	}
	
	if((CCP3IE)&&(CCP3IF)&&(CCP3IP))
	{
		HIGH_INT_REG|=CCP3MASK;		// register this interupt for display on LED
		CCP3IF=0;
	}
	
	if((CCP4IE)&&(CCP4IF)&&(CCP4IP))
	{
		HIGH_INT_REG|=CCP4MASK;		// register this interupt for display on LED
		CCP4IF=0;
	}
	
	if((CCP5IE)&&(CCP5IF)&&(CCP5IP))
	{
		HIGH_INT_REG|=CCP5MASK;		// register this interupt for display on LED
		CCP5IF=0;
	}
}

void interrupt low_priority LOW_ISR(void)
{
	if((TX2IE)&&(TX2IF)&&(!TX2IP))
	{
		LOW_INT_REG|=TX2MASK;		// register this interupt for display on LED
		TX2IF=0;
	}
	
	if((TMR2IE)&&(TMR2IF)&&(!TMR2IP))
	{
		LOW_INT_REG|=TMR2MASK;		// register this interupt for display on LED
		TMR2IF=0;
	}
	
	if((TMR3IE)&&(TMR3IF)&&(!TMR3IP))
	{
		LOW_INT_REG|=TMR3MASK;		// register this interupt for display on LED
		TMR3IF=0;
	}
	
	if((TMR4IE)&&(TMR4IF)&&(!TMR4IP))
	{
		LOW_INT_REG|=TMR4MASK;		// register this interupt for display on LED
		TMR4IF=0;
	}
	
	if((CCP2IE)&&(CCP2IF)&&(!CCP2IP))
	{
		LOW_INT_REG|=CCP2MASK;		// register this interupt for display on LED
		CCP2IF=0;
	}
	
	if((CCP3IE)&&(CCP3IF)&&(!CCP3IP))
	{
		LOW_INT_REG|=CCP3MASK;		// register this interupt for display on LED
		CCP3IF=0;
	}
	
	if((CCP4IE)&&(CCP4IF)&&(!CCP4IP))
	{
		LOW_INT_REG|=CCP4MASK;		// register this interupt for display on LED
		CCP4IF=0;
	}
	
	if((CCP5IE)&&(CCP5IF)&&(!CCP5IP))
	{
		LOW_INT_REG|=CCP5MASK;		// register this interupt for display on LED
		CCP5IF=0;
	}
}

⌨️ 快捷键说明

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