📄 vectors08.c
字号:
//[vectors08.c]用于定义中断矢量表------------------------------------------*
//本文件包含: *
// (1)isrKeyBoard : 键盘中断处理函数(SPI从机选择) *
// (2)isrDummy : 未定义的中断处理函数 *
// (3)中断矢量表 *
//-------------------------------------------------------------------------*
//[头文件]
#include "JB8C.H" //JB8映像寄存器名定义
#include "SPI.h" //SPI函数头文件
#include "Type.h" //类型别名定义
#include "EnDisInt.h" //开放或禁止MCU各模块中断的宏定义
#include "LED.h" //该头文件中包含了LED驱动函数声明
//变量
INT8U i;
INT8U SPI0redata ; //SPI0模块当前接收数据
INT8U SPI0snddata; //SPI0模块当前发送数据
//外部变量
extern INT8U Card_inform[11]; //存储电子标签UID信息
//isrKeyBoard:键盘中断处理函数---------------------------------------------*
//功能:响应SPI主机的从机选择信号,根据前一次接收的数据,发送相应的读写模块 *
// 获取的电子标签UID信息 *
//调用函数: *
// (1)DisableMCUint : 关总中断 *
// (2)DisableKBint : 屏蔽键盘中断 *
// (3)SPI0SLAVECOM : SPI0从机通信子函数 *
// (4)EnableKBint : 开放键盘中断 *
// (5)EnableMCUint : 开总中断 *
//-------------------------------------------------------------------------*
#pragma interrupt_handler isrKeyBoard
void isrKeyBoard(void)
{
//static INT8U SPI0redata ; //SPI0模块当前接收数据
//static INT8U SPI0snddata; //SPI0模块当前发送数据
DisableMCUint(); //关总中断
DisableKBint() ; //屏蔽键盘中断
//调用SPI0从机通信函数
//接收的数据为下次要发送的Card_inform数组下标值
SPI0redata = SPI0SLAVECOM(SPI0snddata);
if((SPI0redata >= 0) && (SPI0redata < 11))
{
SPI0snddata = Card_inform[SPI0redata];
}
else if(SPI0redata == 11)
{
LED_Spark(2, 'S'); //运行指示灯短闪烁一次,表明读卡成功
Card_inform[0]='A';
for(i = 1; i < 11; i++)
Card_inform[i] = 0;
SPI0snddata = Card_inform[0];
}else
{
SPI0snddata = Card_inform[0];
}
KBSCR |= (1 << 2); //清除键盘中断请求(ACKK = 1)
EnableKBint() ; //开放键盘中断
EnableMCUint(); //开总中断
}
//未定义的中断处理函数,本函数不能删除
#pragma interrupt_handler isrDummy
void isrDummy(void)
{
}
//中断矢量表,需定义中断函数,可修改下表中的相应项目
//(interrupt service routine,isr 中断处理程序)
#pragma abs_address:0xfff0 //中断向量表起始地址
void (* const _vectab[])(void) = {
isrKeyBoard, //键盘中断
isrDummy, //TIM溢出中断
isrDummy, //TIM1通道1
isrDummy, //TIM1通道0
isrDummy, //IRQ
isrDummy, //USB
isrDummy //SWI
//RESET也是中断,定义在 crt08.o中
};
#pragma end_abs_address
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -