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

📄 vectors08.c

📁 飞思卡尔的电子钟和电子琴的课程设计,包括源代码
💻 C
字号:
/*-----------------------------------------------------*
*文件名:vectors08.c                                    *
*功  能:用于定义中断矢量表                             *
*-----------------------------------------------------*/
//[头文件]
#include "GP32C.H" 
#include "clock.h"             
extern unsigned char out;

//未定义的中断处理函数,本函数不能删除  
#pragma interrupt_handler isrDummy  
void isrDummy(void){
}
  
#pragma interrupt_handler isrTIMER1
void isrTIMER1(void){
   asm("SEI");            //关总中断
   T1SC&=~(1<<TOFBit);	//重新开始计数	
   addtime();			//日期,时间累加
   displaytime(); 		//显示时间
   asm("CLI");            //开总中断
}

#pragma interrupt_handler isrTIMER1
void isrTIMER2(void){
   out=~out;		//输出取反
   PTD=out;			//输出
}
/*键盘中断处理函数------------------------------------*/
#pragma interrupt_handler isrKBI
void isrKBI(void){
	  unsigned char KB_valve;
	  asm("SEI");
	  INTKBSCR|= (1<<IntBit); //屏蔽键盘中断(IMASKK=1)
	  KB_valve=KB_Scan();     //扫描键值
      KB_valve=KB_Def(KB_valve);  //键值转化为定义值
      set(KB_valve);
      asm("CLI");
	  KB_Init();			     //重新初始化键盘
	  INTKBSCR&= ~(1<<IntBit); //开放键盘中断(IMASKk=1)  
}

//中断矢量表,需定义中断函数,可修改下表中的相应项目
//(interrupt service routine,isr 中断处理程序)
#pragma abs_address:0xffdc    //中断向量表起始地址
void (* const _vectab[])(void) = {            
	isrDummy,		//时基中断 
	isrDummy,		//AD转换中断      
	isrKBI,  	    //键盘中断    
	isrDummy,		//SCI TC/TE 
	isrDummy,		//SCI RF/IDLE 
	isrDummy,		//SCI PE/FE/NF/OR
	isrDummy,		//SPI TE  
	isrDummy,		//SPI MOD/OVR/RF
	isrTIMER2,		//TIM2溢出中断 
	isrDummy,		//TIM2通道1
	isrDummy,		//TIM2通道0
	isrTIMER1,		//TIM1溢出中断      
	isrDummy,		//TIM1通道1
	isrDummy,		//TIM1通道0
	isrDummy,		//CGM     
	isrDummy,		//IRQ     
	isrDummy		//SWI       
    //RESET也是中断,定义在 crt08.o中 
   };
#pragma end_abs_address      

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -