📄 interrupt.c
字号:
/*************************************************/
/**************中断服务***********************/
/*************2003年1月24日*********************/
/************WROTE BY WANGSW********************/
/*
主要为硬件中断服务和中断优先级控制
中断服务程序一般为内部函数,但现在的系统也支持外部函数,
建议为内部函数.
中断默认优先级:
/INT0, T0, /INT1, T1, UART, T2
*/
#include "reg52x2.h"
#include "define.h"
#include "interrupt.h"
/**********************************/
/*
static void Int0(void) interrupt 0
{
EX0=0;
IE0=0;
EX0=1;
}
*/
/******************************************************************************************
*函数名: interrupt_server_init
*参数: bInt 外部中断源标识
bEnable 外部中断源允许标识
bEdgeEnable 外部中断源电平/负边沿触发选择标识
*返回值: 无
*描述: 外部中断服务初始化
*编写: 王绍伟
*版本信息: V1.0 2003年8月15日
******************************************************************************************/
extern void interrupt_init(bool bInt, bool bEnable, bool bEdgeEnable)
{
if(!bInt)
{
IE0 = 0; /*中断标记位*/
IT0 = bEdgeEnable;
EX0 = bEnable;
}
else
{
IE1 = 0; /*中断标记位*/
IT1 = bEdgeEnable;
EX1 = bEnable;
}
}
/******************************************************************************************
*函数名: interrupt_server_priority
*参数: 无
*返回值: 无
*描述: 中断服务优先级设定
*编写: 王绍伟
*版本信息: V1.0 2003年8月15日
******************************************************************************************/
extern void interrupt_priority(void)
{
//UART
PS = 1;
SETBIT(IPH, 4); /*PSH=1*/
//TIMER2
PT2 = 0;
SETBIT(IPH, 5); /*PT2H=1*/
//TIMER1
PT1 = 0;
RESETBIT(IPH, 3); /*PT1H=0*/
//INT1
PX1 = 0;
RESETBIT(IPH, 2); /*PX1H=0*/
//TIMER0
PT0 = 0;
RESETBIT(IPH, 1); /*PT0H=0*/
//INT0
PX0 = 0;
RESETBIT(IPH, 0); /*PX0H=0*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -