//************************************************************ // Copyright (c) // FileName : SC_it.c // Function : Interrupt Service Routine // Instructions : // Date : 2022/03/03 // Version : V1.0002 //************************************************************* /********************Includes************************************************************************/ #include "SC_it.h" #include "..\Drivers\SCDriver_list.h" #include "HeadFiles\SC_itExtern.h" #include "uart1.h" #include "motor.h" #include "adc.h" #define IT_5S_CNT 5000 //计数5000 #define IT_2S_CNT 2000 //计数2000 #define IT_1S_CNT 1000 //计数1000 #define IT_100MS_CNT 100 //计数100 #define IT_10MS_CNT 10 //计数10 #define IT_1MS_CNT 1 //计数1 #define IT_2MS_CNT 2 //计数2 #define IT_3MS_CNT 3 //计数3 #define IT_4MS_CNT 4 //计数4 #define IT_5MS_CNT 5 //计数5 bit it_5s_flag = 0; //5s定时标志 unsigned int xdata it_5s_cnt = 0; bit it_2s_flag = 0; //2s定时标志 unsigned int xdata it_2s_cnt = 0; bit it_1s_flag = 0; //1s定时标志 unsigned int xdata it_1s_cnt = 0; bit it_100ms_flag = 0; //100ms定时标志 unsigned int xdata it_100ms_cnt = 0; bit it_10ms_flag = 0; //10ms定时标志 unsigned int xdata it_10ms_cnt = 0; bit it_1ms_flag = 0; //1ms定时标志 unsigned int xdata it_1ms_cnt = 0; bit it_2ms_flag = 0; //2ms定时标志 unsigned int xdata it_2ms_cnt = 0; bit it_3ms_flag = 0; //3ms定时标志 unsigned int xdata it_3ms_cnt = 0; bit it_4ms_flag = 0; //4ms定时标志 unsigned int xdata it_4ms_cnt = 0; bit it_5ms_flag = 0; //5ms定时标志 unsigned int xdata it_5ms_cnt = 0; /**************************************Generated by EasyCodeCube*************************************/ /*************************************.Generated by EasyCodeCube.************************************/ void Timer0Interrupt() interrupt 1 { /*TIM0_it write here begin*/ TH0 = 0xFC;//高8位初值 TL0 = 0x17;//低8位初值 /*TIM0_it write here*/ /**/ /**//*<6>*/ //Timer0Interrupt { /**//*<7>*/ //5秒 it_5s_cnt++; if(it_5s_cnt >= IT_5S_CNT) { it_5s_flag = 1; it_5s_cnt = 0; } //2秒 it_2s_cnt++; if(it_2s_cnt >= IT_2S_CNT) { it_2s_flag = 1; it_2s_cnt = 0; } //秒 it_1s_cnt++; if(it_1s_cnt >= IT_1S_CNT) { it_1s_flag = 1; it_1s_cnt = 0; } //100毫秒 it_100ms_cnt++; if(it_100ms_cnt >= IT_100MS_CNT) { it_100ms_flag = 1; it_100ms_cnt = 0; } //10毫秒 it_10ms_cnt++; if(it_10ms_cnt >= IT_10MS_CNT) { it_10ms_flag = 1; it_10ms_cnt = 0; } /**//*<7>*/ /**/ } /**//*<6>*/ /**/ /*Timer0Interrupt Flag Clear begin*/ /*Timer0Interrupt Flag Clear end*/ } void Timer1Interrupt() interrupt 3 { /*TIM1_it write here begin*/ TIM1_Mode1SetReloadCounter(53536); /*TIM1_it write here*/ /**/ /**/ { /**//*<7>*/ //1毫秒 it_1ms_cnt++; if(it_1ms_cnt >= IT_1MS_CNT) { it_1ms_flag = 1; it_1ms_cnt = 0; } //2毫秒 it_2ms_cnt++; if(it_2ms_cnt >= IT_2MS_CNT) { it_2ms_flag = 1; it_2ms_cnt = 0; } //3毫秒 it_3ms_cnt++; if(it_3ms_cnt >= IT_3MS_CNT) { it_3ms_flag = 1; it_3ms_cnt = 0; } //4毫秒 it_4ms_cnt++; if(it_4ms_cnt >= IT_4MS_CNT) { it_4ms_flag = 1; it_4ms_cnt = 0; } //5毫秒 it_5ms_cnt++; if(it_5ms_cnt >= IT_5MS_CNT) { it_5ms_flag = 1; it_5ms_cnt = 0; } /**//*<7>*/ /**/ } /*Timer1Interrupt Flag Clear begin*/ /*Timer1Interrupt Flag Clear end*/ } void ADCInterrupt() interrupt 6 { // /*ADC_it write here begin*/ // /**/ // /**/ /*ADCInterrupt Flag Clear end*/ ADC_ClearFlag(); } #if defined (SC92F854x) || defined (SC92F754x) ||defined (SC92F844xB) || defined (SC92F744xB)||defined (SC92F84Ax_2) || defined (SC92F74Ax_2)|| defined (SC92F846xB) \ || defined (SC92F746xB) || defined (SC92F836xB) || defined (SC92F736xB) || defined (SC92F8003)||defined (SC92F84Ax) || defined (SC92F74Ax) || defined (SC92F83Ax) \ || defined (SC92F73Ax) || defined (SC92F7003) || defined (SC92F740x) || defined (SC92FWxx) || defined (SC93F743x) || defined (SC93F833x) || defined (SC93F843x)\ || defined (SC92F848x) || defined (SC92F748x)|| defined (SC92F859x) || defined (SC92F759x) extern bit SSI_FLAG; void SSIInterrupt() interrupt 7 { /*SSI_it write here begin*/ if(SSI_GetFlagStatus(UART1_FLAG_TI) == SET) //UART1发送中断标志位TI { SSI_FLAG = 0; SSI_ClearFlag(UART1_FLAG_TI); } if(SSI_GetFlagStatus(UART1_FLAG_RI) == SET)//UART1接收中断标志位RI { unsigned char ch = 0; ch = SSI_UART1_ReceiveData8(); receive_ttl_data(ch);//放串口中断内,接收数据 SSI_ClearFlag(UART1_FLAG_RI); } /*SSIInterrupt Flag Clear end*/ } #endif