📄 isr.c
字号:
//-------------------------------------------------------------------------*
//文 件 名: isr.c (中断处理函数文件) *
//说 明: 中断处理函数 *
//本文件包含: *
// (1)asm_exception_handler: 中断处理程序 *
// (2)irq_handler: 中断处理程序 *
// (3)RTC_handler: RTC中断处理程序 *
// (4)Uart0_handler: Uart0接收中断处理程序 *
//硬件连接: 无 *
//-------------------------------------------------------------------------*
#include "isr.h"
extern uint8 g_nIsSendTime; //向PC发送时间标志0-不发送, 1-发送
extern uint8 g_Time[3]; //当前的时间(1字节时+1字节分+1字节秒)
//asm_exception_handler中断处理程序
__interrupt__
void asm_exception_handler(void)
{
DisableInterrupts(); //关总中断
//添加用户代码
EnableInterrupts(); //开总中断
}
//irq_handler中断处理程序
__interrupt__
void irq_handler(void)
{
DisableInterrupts(); //关总中断
//添加用户代码
EnableInterrupts(); //开总中断
}
//RTC_handler中断处理程序
__interrupt__
void RTC_handler(void)
{
DisableInterrupts(); //关总中断
//RTC秒中断
if ((MCF_RTC_ISR & MCF_RTC_ISR_1HZ))
{
g_nIsSendTime = 1;
g_Time[0] = (uint8)(MCF_RTC_HOURMIN >> 8);
g_Time[1] = (uint8)(MCF_RTC_HOURMIN);
g_Time[2] = (uint8)(MCF_RTC_SECONDS);
MCF_RTC_ISR |= MCF_RTC_ISR_1HZ;
}
EnableInterrupts(); //开总中断
}
//Uart0中断处理程序
__interrupt__
void Uart0_handler(void)
{
uint8 timeSetting[3];
DisableInterrupts(); //关总中断
UartReN(0, 3, timeSetting); //接收"时分秒"
RTCTimeSetting(timeSetting, 3); //设置当前的RTC的时间
EnableInterrupts(); //开总中断
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -