C51 COMPILER V9.59.0.0 SC92F_TIMER1 01/18/2024 10:03:13 PAGE 1 C51 COMPILER V9.59.0.0, COMPILATION OF MODULE SC92F_TIMER1 OBJECT MODULE PLACED IN ..\Output\sc92f_timer1.obj COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\FWLib\SC92F_Lib\src\sc92f_timer1.c LARGE OBJECTADVANCED OPTIMIZE(8,SI -ZE) BROWSE INCDIR(..\FWLib\SC92F_Lib\inc;..\User;..\Apps;..\Apps;..\User) DEFINE(SC92F836xB) DEBUG PRINT(..\List\sc92f_t -imer1.lst) OBJECT(..\Output\sc92f_timer1.obj) line level source 1 //************************************************************ 2 // Copyright (c) 深圳市赛元微电子有限公司 3 // 文件名称: sc92f_timer1.c 4 // 作者: 赛元应用团队 5 // 模块功能: TIMER1固件库函数C文件 6 // 局部函数列表: 7 // 最后更正日期: 2022年3月23日 8 // 版本: V1.10001 9 // 说明:该文件仅适用于SC92F系列芯片 10 //************************************************************* 11 #include "sc92f_timer1.h" 12 13 /************************************************** 14 *函数名称:void TIM1_DeInit(void) 15 *函数功能:TIMER1相关寄存器复位至缺省值 16 *入口参数:void 17 *出口参数:void 18 **************************************************/ 19 void TIM1_DeInit(void) 20 { 21 1 TMOD &= 0X0F; 22 1 TCON &= 0X37; 23 1 TMCON &= 0XFD; 24 1 TH1 = 0X00; 25 1 TL1 = 0X00; 26 1 ET1 = 0; 27 1 IPT1 = 0; 28 1 } 29 30 /************************************************** 31 *函数名称:void TIM1_TimeBaseInit(TIM1_PresSel_TypeDef TIM1_PrescalerSelection, TIM1_CountMode_TypeDef TIM1 -_CountMode) 32 *函数功能:TIMER1基本设置配置函数 33 *入口参数: 34 TIM1_PresSel_TypeDef:TIM1_PrescalerSelection:预分频选择 35 TIM1_CountMode_TypeDef:TIM1_CountMode:计数/定时模式选择 36 *出口参数:void 37 **************************************************/ 38 void TIM1_TimeBaseInit(TIM1_PresSel_TypeDef TIM1_PrescalerSelection, 39 TIM1_CountMode_TypeDef TIM1_CountMode) 40 { 41 1 //判断是否需要进行分频 42 1 if(TIM1_PrescalerSelection == TIM1_PRESSEL_FSYS_D12) 43 1 { 44 2 TMCON &= 0xFD; 45 2 } 46 1 else if(TIM1_PrescalerSelection == TIM1_PRESSEL_FSYS_D1) 47 1 { 48 2 TMCON |= 0x02; 49 2 } 50 1 51 1 //TIM1工作模式 52 1 if(TIM1_CountMode == TIM1_MODE_TIMER) C51 COMPILER V9.59.0.0 SC92F_TIMER1 01/18/2024 10:03:13 PAGE 2 53 1 { 54 2 TMOD &= 0xBF; 55 2 } 56 1 else if(TIM1_CountMode == TIM1_MODE_COUNTER) 57 1 { 58 2 TMOD |= 0x40; 59 2 } 60 1 } 61 62 /************************************************** 63 *函数名称:void TIM1_WorkMode0Config(uint16_t TIM1_SetCounter) 64 *函数功能:TIMER1工作模式0配置函数 65 *入口参数: 66 uint16_t:TIM1_SetCounter:配置计数初值 67 *出口参数:void 68 **************************************************/ 69 void TIM1_WorkMode0Config(uint16_t 70 TIM1_SetCounter) 71 { 72 1 TMOD &= 0XCF; 73 1 TL1 = (uint8_t)TIM1_SetCounter; 74 1 TH1 = (TIM1_SetCounter >> 5); 75 1 } 76 77 /************************************************** 78 *函数名称:void TIM1_WorkMode1Config(uint16_t TIM1_SetCounter) 79 *函数功能:TIMER1工作模式1配置函数 80 *入口参数: 81 uint16_t:TIM1_SetCounter:配置计数初值 82 *出口参数:void 83 **************************************************/ 84 void TIM1_WorkMode1Config(uint16_t 85 TIM1_SetCounter) 86 { 87 1 TMOD &= 0XCF; 88 1 TMOD |= 0X10; 89 1 TL1 = TIM1_SetCounter % 256; 90 1 TH1 = TIM1_SetCounter / 256; 91 1 } 92 93 /************************************************** 94 *函数名称:void TIM1_WorkMode2Config(uint8_t TIM1_SetCounter) 95 *函数功能:TIMER1工作模式2配置函数 96 *入口参数: 97 uint8_t:TIM1_SetCounter:配置计数初值 98 *出口参数:void 99 **************************************************/ 100 void TIM1_WorkMode2Config(uint8_t TIM1_SetCounter) 101 { 102 1 TMOD &= 0XCF; 103 1 TMOD |= 0X20; 104 1 TL1 = TIM1_SetCounter; 105 1 TH1 = TIM1_SetCounter; 106 1 } 107 108 /************************************************** 109 *函数名称:void TIM1_WorkModeConfig(TIM1_WorkMode_TypeDef TIM1_WorkMode, uint16_t TIM1_SetCounter) 110 *函数功能:TIMER1工作模式配置函数 111 *入口参数: 112 TIM1_WorkMode_TypeDef:TIM1_WorkMode:TIMER1工作模式选择 113 uint16_t:TIM1_SetCounter:TIMER1计数初值配置 114 *出口参数:void C51 COMPILER V9.59.0.0 SC92F_TIMER1 01/18/2024 10:03:13 PAGE 3 115 **************************************************/ 116 void TIM1_WorkModeConfig(TIM1_WorkMode_TypeDef 117 TIM1_WorkMode, uint16_t TIM1_SetCounter) 118 { 119 1 switch(TIM1_WorkMode) 120 1 { 121 2 case TIM1_WORK_MODE0: 122 2 TIM1_WorkMode0Config(TIM1_SetCounter); 123 2 break; 124 2 125 2 case TIM1_WORK_MODE1: 126 2 TIM1_WorkMode1Config(TIM1_SetCounter); 127 2 break; 128 2 129 2 case TIM1_WORK_MODE2: 130 2 TIM1_WorkMode2Config(TIM1_SetCounter); 131 2 break; 132 2 133 2 default: 134 2 break; 135 2 } 136 1 } 137 138 139 140 /******************* (C) COPYRIGHT 2020 SinOne Microelectronics *****END OF FILE****/ MODULE INFORMATION: STATIC OVERLAYABLE CODE SIZE = 157 ---- CONSTANT SIZE = ---- ---- XDATA SIZE = ---- ---- PDATA SIZE = ---- ---- DATA SIZE = ---- ---- IDATA SIZE = ---- ---- BIT SIZE = ---- ---- EDATA SIZE = ---- ---- HDATA SIZE = ---- ---- XDATA CONST SIZE = ---- ---- FAR CONST SIZE = ---- ---- END OF MODULE INFORMATION. C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)