//-------------------------------------------------------------------------*
// 文件名: isr.c                                                           *
// 说  明: 中断处理函数文件                                                *
//-------------------------------------------------------------------------*

//头文件
#include "isr.h"


//此处为用户新定义中断处理函数的存放处
//-------------------------------------------------------------------------*
//函数名: isrT1Out                                                         *
//功  能: 定时器1溢出中断处理函数,以秒为最小单位计时,并清定时器1溢出标志位 *
//参  数: 无                                                               *
//返  回: 无                                                               *
//说  明: 调用SecAdd1函数                                                  *
//-------------------------------------------------------------------------*
interrupt void isrT1Out(void)
{
    uint8 temp;
    DisableInterrupt();           //禁止总中断
    SecAdd1(g_time);                //1s到,递增时,分,秒缓冲区的值
   
    //清定时器1溢出标志位
    temp  = TPM_CSTR(1);          //读取定时器1状态和控制寄存器TPM1SC
    TPM_CSTR(1) &= ~(TPM1SC_TOF_MASK); //向定时器溢出标志位TOF写0       
    EnableInterrupt();            //开放总中断 
}

//-------------------------------------------------------------------------*
//函数名: isrSCIre                                                         *
//功  能: SCI接收中断处理函数,接收3个字节数据作为基准时分秒的值,放入       *
//        time[0-2]                                                        *
//参  数: 无                                                               *
//返  回: 无                                                               *
//说  明: 调用了SCIReN函数                                                 *
//-------------------------------------------------------------------------*
interrupt void isrSCIre(void)
{
    uint8 temp;
    DisableInterrupt();          //禁止总中断
    temp=SCIReN(1, 3, g_time);     //接收3个字节,放入time数组
    EnableInterrupt();           //开放总中断
}


//未定义的中断处理函数,本函数不能删除
interrupt void isrDummy(void)
{
}

//中断处理子程序类型定义
typedef void( *ISR_func_t)(void);

//中断矢量表，如果需要定义其它中断函数，请修改下表中的相应项目
const ISR_func_t ISR_vectors[] @0xFFCC = 
{  
    isrDummy,        //时基中断 
    isrDummy,        //IIC中断      
    isrDummy,        //ADC转换中断    
    isrDummy,        //键盘中断 
    isrDummy,        //SCI2发送中断 
    isrDummy,        //SCI2接收中断
    isrDummy,        //SCI2错误中断
    isrDummy,        //SCI1发送中断
    isrSCIre,        //SCI1接收中断
    isrDummy,        //SCI1错误中断
    isrDummy,        //SPI中断
    isrDummy,        //TPM2溢出中断      
    isrDummy,        //TPM2通道1输入捕捉/输出比较中断
    isrDummy,        //TPM2通道0输入捕捉/输出比较中断
    isrT1Out,        //TPM1溢出中断      
    isrDummy,        //TPM1通道5输入捕捉/输出比较中断
    isrDummy,        //TPM1通道4输入捕捉/输出比较中断
    isrDummy,        //TPM1通道3输入捕捉/输出比较中断
    isrDummy,        //TPM1通道2输入捕捉/输出比较中断
    isrDummy,        //TPM1通道1输入捕捉/输出比较中断
    isrDummy,        //TPM1通道0输入捕捉/输出比较中断
    isrDummy,        //ICG的PLL锁相状态变化中断
    isrDummy,        //低电压检测中断
    isrDummy,        //IRQ引脚中断     
    isrDummy,        //SWI指令中断      
     //RESET是特殊中断,其向量由开发环境直接设置(在本软件系统的Start08.o文件中)
};



