/* ****************************************************************************** * * @file sys_tim.c * @brief Timer module * @ic sy8835 * * @version 1.0 * @date 2024/11/01 15:00:40 * @author Alex Xu * * Copyright (c) 2013-2099,Tkplusemi Technology Co.,Ltd. * All Rights Reserved * * History: * Revision Date Author Desc * 1.0.0 2024/11/01 Alex build this file ******************************************************************************/ /*_____ I N C L U D E S ____________________________________________________*/ #include "sys_tim.h" #include "vox_module.h" #include "system.h" #include "charger_module.h" #include "led.h" #include "pwm.h" /******************************************************************************\ Macro definitions \******************************************************************************/ /******************************************************************************\ Variables definitions \******************************************************************************/ uint8_t cnt_sys_tim_5ms; uint8_t cnt_sys_tim_10ms; uint8_t cnt_sys_tim_250ms; uint16_t cnt_sys_tim_100ms; uint8_t cnt_sys_tim_1s; bit F_sys_tim_1ms; bit F_sys_tim_5ms; bit F_sys_tim_10ms; bit F_sys_tim_250ms; bit F_sys_tim_100ms; bit F_sys_tim_1s; uint8_t F_sys_tim_tick; bit F_sys_tim1_tick; bit F_sys_tim2_tick; /******************************************************************************\ Functions definitions \******************************************************************************/ /* ******************************************************************************* * void Sys_Tim_Handler(void ) * * Description : Timer Handle * * Arguments : NONE * Returns : NONE * Notes : NONE * ******************************************************************************* */ void Sys_Tim0_Handler(void) { if(F_sys_tim_tick == 0) return; F_sys_tim_tick = 0; //system tick F_sys_tim_1ms = TRUE; //---------------5ms---------------------------------------- cnt_sys_tim_5ms++; if(cnt_sys_tim_5ms >= 5) { cnt_sys_tim_5ms = 0; F_sys_tim_5ms = TRUE; } //---------------10ms---------------------------------------- cnt_sys_tim_10ms++; if(cnt_sys_tim_10ms >= 10) { cnt_sys_tim_10ms = 0; F_sys_tim_10ms = TRUE; } //---------------100ms---------------------------------------- cnt_sys_tim_100ms++; if(cnt_sys_tim_100ms >= 100) { cnt_sys_tim_100ms = 0; F_sys_tim_100ms = TRUE; } //------------------------------------------------- cnt_sys_tim_250ms++; if(cnt_sys_tim_250ms>=250) { cnt_sys_tim_250ms = 0; F_sys_tim_250ms = TRUE; //-----------------250ms------------------------- cnt_sys_tim_1s++; if(cnt_sys_tim_1s >= 4) { cnt_sys_tim_1s = 0; F_sys_tim_1s = TRUE; } } } /* ******************************************************************************* * void Delay10ms(void) //@11.0592MHz * * Description : 10msÈí¶¨Ê±º¯Êý * * Arguments : NONE * Returns : NONE * Notes : NONE * ******************************************************************************* */ #if 0 void Delay10ms(void) //@11.0592MHz { unsigned char i, j; i = 108; j = 145; do { while (--j); } while (--i); } #endif /** * @brief This function handles sys_tim Handler. * @param None * @retval None * 1ms */ void tim0_Interrupt(void) interrupt Interrupt_Vector_TF0 //interrupt address is 0x000B { //1ms TH0 += C_TIM0_Reload >> 8; TL0 += C_TIM0_Reload & 0xFF; F_sys_tim_tick = TRUE; } /* ******************************************************************************* * void Sys_Tim0_Init(void) * * Description : TImer0 Mode1 16bit timer Initialization * * Arguments : NONE * Returns : NONE * Notes : NONE * ******************************************************************************* */ void Sys_Tim0_Init(void) { TMOD = 0x01; //mode 1, 16bit timer TH0 = C_TIM0_Reload >> 8; TL0 = C_TIM0_Reload & 0xFF; ET0 = 1; //enable time0 interrupt TR0 = 1; //time0 run } #if TIMER1_ENABLE /** * @brief This function handles sys_tim Handler. * @param None * @retval None * 1ms */ void tim1_Interrupt(void) interrupt Interrupt_Vector_TF1//interrupt address is 0x000B { //1ms TF1 = 0; TH1 += C_TIM1_Reload >> 8; TL1 += C_TIM1_Reload & 0xFF; F_sys_tim1_tick = TRUE; } /* ******************************************************************************* * void Sys_Tim1_Init(void) * * Description : TImer1 Mode1 16bit timer Initialization * * Arguments : NONE * Returns : NONE * Notes : NONE * ******************************************************************************* */ void Sys_Tim1_Init(void) { TMOD |= 0x10; //mode 1, 16bit timer TH1 = C_TIM1_Reload >> 8; TL1 = C_TIM1_Reload & 0xFF; ET1 = 1; //enable time1 interrupt TR1 = 1; //time1 run } #endif