⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 isr.c

📁 基于32位ColdFire构建嵌入式系统书本原程序.rar
💻 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 + -