C51 COMPILER V9.59.0.0 SC92F_TIMER0 01/18/2024 10:03:12 PAGE 1 C51 COMPILER V9.59.0.0, COMPILATION OF MODULE SC92F_TIMER0 OBJECT MODULE PLACED IN ..\Output\sc92f_timer0.obj COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\FWLib\SC92F_Lib\src\sc92f_timer0.c LARGE OBJECTADVANCED OPTIMIZE(8,SI -ZE) BROWSE INCDIR(..\FWLib\SC92F_Lib\inc;..\User;..\Apps;..\Apps;..\User) DEFINE(SC92F836xB) DEBUG PRINT(..\List\sc92f_t -imer0.lst) OBJECT(..\Output\sc92f_timer0.obj) line level source 1 //************************************************************ 2 // Copyright (c) 深圳市赛元微电子有限公司 3 // 文件名称: sc92f_tiemr0.c 4 // 作者: 赛元应用团队 5 // 模块功能: TIMER0固件库函数C文件 6 // 最后更正日期: 2022年3月23日 7 // 版本: V1.10002 8 // 说明: 9 //************************************************************* 10 11 #include "sc92f_timer0.h" 12 13 /************************************************** 14 *函数名称:void TIM0_DeInit(void) 15 *函数功能:TIMER0相关寄存器复位至缺省值 16 *入口参数:void 17 *出口参数:void 18 **************************************************/ 19 void TIM0_DeInit(void) 20 { 21 1 TMOD &= 0XF0; 22 1 TCON &= 0XCD; 23 1 TMCON &= 0XFE; 24 1 TH0 = 0X00; 25 1 TL0 = 0X00; 26 1 ET0 = 0; 27 1 IPT0 = 0; 28 1 } 29 30 /************************************************** 31 *函数名称:void TIM0_TimeBaseInit(TIM0_PresSel_TypeDef TIM0_PrescalerSelection, TIM0_CountMode_TypeDef TIM0 -_CountMode) 32 *函数功能:TIMER0基本设置配置函数 33 *入口参数: 34 TIM0_PresSel_TypeDef:TIM0_PrescalerSelection:预分频选择 35 TIM0_CountMode_TypeDef:TIM0_CountMode:计数/定时模式选择 36 *出口参数:void 37 **************************************************/ 38 void TIM0_TimeBaseInit(TIM0_PresSel_TypeDef 39 TIM0_PrescalerSelection, 40 TIM0_CountMode_TypeDef TIM0_CountMode) 41 { 42 1 if(TIM0_PrescalerSelection == 43 1 TIM0_PRESSEL_FSYS_D12) 44 1 { 45 2 TMCON &= 0XFE; 46 2 } 47 1 else 48 1 if(TIM0_PrescalerSelection == 49 1 TIM0_PRESSEL_FSYS_D1) 50 1 { 51 2 TMCON |= 0X01; 52 2 } C51 COMPILER V9.59.0.0 SC92F_TIMER0 01/18/2024 10:03:12 PAGE 2 53 1 54 1 if(TIM0_CountMode == TIM0_MODE_TIMER) 55 1 { 56 2 TMOD &= 0xFB; 57 2 } 58 1 else 59 1 if(TIM0_CountMode == TIM0_MODE_COUNTER) 60 1 { 61 2 TMOD |= 0x04; 62 2 } 63 1 } 64 65 /************************************************** 66 *函数名称:void TIM0_WorkMode0Config(uint16_t TIM0_SetCounter) 67 *函数功能:TIMER0工作模式0配置函数 68 *入口参数: 69 uint16_t:TIM0_SetCounter:配置计数初值 70 *出口参数:void 71 **************************************************/ 72 void TIM0_WorkMode0Config(uint16_t 73 TIM0_SetCounter) 74 { 75 1 TMOD &= 0XFC; 76 1 TL0 = (uint8_t)TIM0_SetCounter; 77 1 TH0 = (TIM0_SetCounter >> 5); 78 1 } 79 80 /************************************************** 81 *函数名称:void TIM0_WorkMode1Config(uint16_t TIM0_SetCounter) 82 *函数功能:TIMER0工作模式1配置函数 83 *入口参数: 84 uint16_t:TIM0_SetCounter:配置计数初值 85 *出口参数:void 86 **************************************************/ 87 void TIM0_WorkMode1Config(uint16_t 88 TIM0_SetCounter) 89 { 90 1 TMOD &= 0XFC; 91 1 TMOD |= 0X01; 92 1 TL0 = TIM0_SetCounter % 256; 93 1 TH0 = TIM0_SetCounter / 256; 94 1 } 95 96 /************************************************** 97 *函数名称:void TIM0_WorkMode2Config(uint8_t TIM0_SetCounter) 98 *函数功能:TIMER0工作模式2配置函数 99 *入口参数: 100 uint8_t:TIM0_SetCounter:配置计数初值 101 *出口参数:void 102 **************************************************/ 103 void TIM0_WorkMode2Config(uint8_t TIM0_SetCounter) 104 { 105 1 TMOD &= 0XFC; 106 1 TMOD |= 0X02; 107 1 TL0 = TIM0_SetCounter; 108 1 TH0 = TIM0_SetCounter; 109 1 } 110 111 /************************************************** 112 *函数名称:void TIM0_WorkModeConfig(TIM0_WorkMode_TypeDef TIM0_WorkMode, uint16_t TIM0_SetCounter1, uint16_ -t TIM0_SetCounter2) 113 *函数功能:TIMER0工作模式配置函数 C51 COMPILER V9.59.0.0 SC92F_TIMER0 01/18/2024 10:03:12 PAGE 3 114 *入口参数: 115 TIM0_WorkMode_TypeDef:TIM0_WorkMode:TIMER0工作模式选择 116 uint16_t:TIM0_SetCounter1:TIMER0计数初值配置1 117 uint16_t:TIM0_SetCounter2:TIMER0计数初值配置2 118 *出口参数:void 119 **************************************************/ 120 void TIM0_WorkModeConfig(TIM0_WorkMode_TypeDef 121 TIM0_WorkMode, uint16_t TIM0_SetCounter1, 122 uint16_t TIM0_SetCounter2) 123 { 124 1 switch (TIM0_WorkMode) 125 1 { 126 2 case TIM0_WORK_MODE0: 127 2 TIM0_WorkMode0Config(TIM0_SetCounter1); 128 2 break; 129 2 130 2 case TIM0_WORK_MODE1: 131 2 TIM0_WorkMode1Config(TIM0_SetCounter1); 132 2 break; 133 2 134 2 case TIM0_WORK_MODE2: 135 2 TIM0_WorkMode2Config(TIM0_SetCounter1); 136 2 break; 137 2 138 2 case TIM0_WORK_MODE3: 139 2 TIM0_WorkMode3Config(TIM0_SetCounter1, 140 2 TIM0_SetCounter2); 141 2 break; 142 2 default: 143 2 break; 144 2 } 145 1 } 146 147 /************************************************** 148 *函数名称:void TIM0_WorkMode3Config(uint8_t TIM0_SetCounter, uint8_t TIM1_SetCounter) 149 *函数功能:TIMER0工作模式3配置函数 150 *入口参数: 151 uint8_t:TIM0_SetCounter:配置TIMER0_TL0计数初值 152 uint8_t:TIM1_SetCounter 153 配置TIMER0_TH0计数初值 154 *出口参数:void 155 **************************************************/ 156 void TIM0_WorkMode3Config(uint8_t TIM0_SetCounter, 157 uint8_t TIM1_SetCounter) 158 { 159 1 TMOD |= 0X03; 160 1 TL0 = TIM0_SetCounter; 161 1 TH0 = TIM1_SetCounter; 162 1 } 163 164 165 /******************* (C) COPYRIGHT 2020 SinOne Microelectronics *****END OF FILE****/ MODULE INFORMATION: STATIC OVERLAYABLE CODE SIZE = 204 ---- CONSTANT SIZE = ---- ---- XDATA SIZE = ---- 2 PDATA SIZE = ---- ---- DATA SIZE = ---- ---- IDATA SIZE = ---- ---- BIT SIZE = ---- ---- C51 COMPILER V9.59.0.0 SC92F_TIMER0 01/18/2024 10:03:12 PAGE 4 EDATA SIZE = ---- ---- HDATA SIZE = ---- ---- XDATA CONST SIZE = ---- ---- FAR CONST SIZE = ---- ---- END OF MODULE INFORMATION. C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)