标签:
一、头文件:
#ifndef __ISR_H #define __ISR_H 1 #include "include.h" /* 重新定义中断向量表 * 先取消默认的中断向量元素宏定义 #undef VECTOR_xxx * 在重新定义到自己编写的中断函数 #define VECTOR_xxx xxx_IRQHandler * 例如: * #undef VECTOR_003 * #define VECTOR_003 HardFault_Handler 重新定义硬件上访中断服务函数 * * extren void HardFault_Handler(void); 声明函数,然后在isr.c里定义 */ ////////////////////////定时中断映射//////////////// #undef VECTOR_084 #define VECTOR_084 PIT0_IRQHandler extern void PIT0_IRQHandler(void); /* #undef VECTOR_085 #define VECTOR_085 PIT1_IRQHandler extern void PIT1_IRQHandler(void); */ ///////////////脉冲计数映射//////////////////////// #undef VECTOR_101 #define VECTOR_101 LPT_Handler extern void LPT_Handler(void); ////////////////串口中断///////////////// #undef VECTOR_061 #define VECTOR_061 UART0_IROHandler extern void UART0_IROHandler(void); //////////////////potrc口捕捉中断//////////////////// #undef VECTOR_105 #define VECTOR_105 PORTC_IRQHandler extern void PORTC_IRQHandler(void); /*//////////////////potra口捕捉中断//////////////////// #undef VECTOR_103 #define VECTOR_103 PORTA_IRQHandler extern void PORTA_IRQHandler(void); //////////////////potrD口捕捉中断//////////////////// #undef VECTOR_106 #define VECTOR_106 PORTD_IRQHandler extern void PORTD_IRQHandler(void); */ //////////////////DMA通道1中断/////////////// #undef VECTOR_016 #define VECTOR_016 DMA_CH4_Handler extern void DMA_CH4_Handler(void); #endif //__ISR_H /* End of "isr.h" */
二、源文件:
#include "common.h" #include "include.h" /******2ms定时中断******/ void PIT0_IRQHandler(void) { PIT_Flag_Clear(PIT0); //清中断标志位 } //////////////脉冲计数中断服务函数////////////// volatile u32 LPT_INT_count=0; void LPT_Handler(void) { LPTMR0_CSR|=LPTMR_CSR_TCF_MASK; LPT_INT_count++; }/**/ //////////////////DMACH0中断///////////// void DMA_CH4_Handler(void) { DMA_IRQ_CLEAN(DMA_CH4); //清除通道传输中断标志位 (这样才能再次进入中断) DMA_EN(DMA_CH4); //使能通道CHn 硬件请求 (这样才能继续触发DMA传输) } /******串口中断******/ void UART0_IROHandler(void) { } void PORTC_IRQHandler(void) { }
标签:
原文地址:http://www.cnblogs.com/BlueMountain-HaggenDazs/p/4995832.html