int.c
来自「该程序是检测电信电话的振铃程序」· C语言 代码 · 共 85 行
C
85 行
#ifndef _INT_H
#define _INT_H
#include "config.h"
void highIsr(void);
void lowIsr (void);
/**************************************************
功能:低优先级中断入口
入口:无
出口:无
***************************************************/
#pragma code low_isr_vector=0x00018
void low_isr (void)
{
_asm goto lowIsr _endasm
}
#pragma code
/**************************************************
功能:高优先级中断入口
入口:无
出口:无
***************************************************/
#pragma code isr_vector=0x0008
void isr (void)
{
_asm goto highIsr _endasm
}
#pragma code
/**************************************************
功能:低优先级中断服务程序
入口:无
出口:无
***************************************************/
#pragma interruptlow lowIsr
void lowIsr(void)
{
if(INTCONbits.TMR0IF)
{
//16M晶振,定时10ms
TMR0H=0XFF;
TMR0L=0XD7;
INTCONbits.TMR0IF=0;
}
INTCONbits.GIE=1;//允许中断
}
#pragma code
/**************************************************
功能:高优先级中断服务程序
入口:无
出口:无
***************************************************/
#pragma interrupt highIsr
void highIsr(void)
{
if(INTCONbits.TMR0IF)
{
//16M晶振,定时10ms
TMR0H=0XF0;
TMR0L=0X5f;
INTCONbits.TMR0IF=0;
time_t();
}
else if(INTCONbits.INT0F)
{
sysFlags.ringFlag=1;
INTCONbits.INT0E=0;
INTCONbits.INT0F=0;
}
INTCONbits.GIE=1;//允许中断
}
#pragma code
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?