ATY_LIB V2_102_230218
ATY_LIB for general devices or ALGO
 
Loading...
Searching...
No Matches
fw_tim.c
Go to the documentation of this file.
1// Copyright 2021 IOsetting <iosetting(at)outlook.com>
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15#include "fw_tim.h"
16#include "fw_sys.h"
17#include "fw_util.h"
18
27{
29 if (!freq1t)
30 value = value / 12;
31 value = value / frequency;
32 if (value > limit)
33 return 0;
34 else
35 return limit - value;
36}
37
39{
40 uint16_t init;
43 if (mode == TIM_TimerMode_8BitAuto)
44 {
45 init = TIM_Timer0n1_CalculateInitValue(frequency, freq1t, 0xFF);
46 TIM_Timer0_SetInitValue(init & 0xFF, init & 0xFF);
47 }
48 else
49 {
50 init = TIM_Timer0n1_CalculateInitValue(frequency, freq1t, 0xFFFF);
51 TIM_Timer0_SetInitValue(init >> 8, init & 0xFF);
52 }
53}
54
56{
57 uint16_t init;
60 if (mode == TIM_TimerMode_8BitAuto)
61 {
62 init = TIM_Timer0n1_CalculateInitValue(frequency, freq1t, 0xFF);
63 TIM_Timer1_SetInitValue(init & 0xFF, init & 0xFF);
64 }
65 else
66 {
67 init = TIM_Timer0n1_CalculateInitValue(frequency, freq1t, 0xFF);
68 TIM_Timer1_SetInitValue(init >> 8, init & 0xFF);
69 }
70}
71
73 uint16_t frequency, uint8_t prescaler, HAL_State_t freq1t)
74{
76 if (!freq1t)
77 value = value / 12;
78 value = value / ((prescaler + 1) * frequency);
79
80 if (value > 0xFFFF)
81 return 0;
82 else
83 return 0xFFFF - value;
84}
85
93void TIM_Timer2_Config(HAL_State_t freq1t, uint8_t prescaler, uint16_t frequency)
94{
95 uint16_t init = _TIM_Timer234_InitValueCalculate(frequency, prescaler, freq1t);
97 TIM_Timer2_SetPreScaler(prescaler);
98 TIM_Timer2_SetInitValue(init >> 8, init & 0xFF);
99}
100
102 HAL_State_t freq1t, uint8_t prescaler, uint16_t frequency, HAL_State_t intState)
103{
104 uint16_t init = _TIM_Timer234_InitValueCalculate(frequency, prescaler, freq1t);
105 TIM_Timer3_Set1TMode(freq1t);
106 TIM_Timer3_SetPreScaler(prescaler);
107 TIM_Timer3_SetInitValue(init >> 8, init & 0xFF);
108 EXTI_Timer3_SetIntState(intState);
109}
110
112 HAL_State_t freq1t, uint8_t prescaler, uint16_t frequency, HAL_State_t intState)
113{
114 uint16_t init = _TIM_Timer234_InitValueCalculate(frequency, prescaler, freq1t);
115 TIM_Timer4_Set1TMode(freq1t);
116 TIM_Timer4_SetPreScaler(prescaler);
117 TIM_Timer4_SetInitValue(init >> 8, init & 0xFF);
118 EXTI_Timer4_SetIntState(intState);
119}
value
Definition: DS18B20_ATY.c:216
#define EXTI_Timer4_SetIntState(__STATE__)
Definition: fw_exti.h:130
#define EXTI_Timer3_SetIntState(__STATE__)
Definition: fw_exti.h:131
#define __SYSCLOCK
Definition: fw_sys.h:45
int16_t TIM_Timer0n1_CalculateInitValue(uint16_t frequency, HAL_State_t freq1t, uint16_t limit)
Definition: fw_tim.c:26
void TIM_Timer4_Config(HAL_State_t freq1t, uint8_t prescaler, uint16_t frequency, HAL_State_t intState)
Definition: fw_tim.c:111
void TIM_Timer3_Config(HAL_State_t freq1t, uint8_t prescaler, uint16_t frequency, HAL_State_t intState)
Definition: fw_tim.c:101
void TIM_Timer1_Config(HAL_State_t freq1t, TIM_TimerMode_t mode, uint16_t frequency)
Definition: fw_tim.c:55
void TIM_Timer0_Config(HAL_State_t freq1t, TIM_TimerMode_t mode, uint16_t frequency)
Definition: fw_tim.c:38
int16_t _TIM_Timer234_InitValueCalculate(uint16_t frequency, uint8_t prescaler, HAL_State_t freq1t)
Definition: fw_tim.c:72
void TIM_Timer2_Config(HAL_State_t freq1t, uint8_t prescaler, uint16_t frequency)
Definition: fw_tim.c:93
#define TIM_Timer0_Set1TMode(__STATE__)
Definition: fw_tim.h:40
TIM_TimerMode_t
Definition: fw_tim.h:23
@ TIM_TimerMode_8BitAuto
Definition: fw_tim.h:26
#define TIM_Timer4_SetInitValue(__TH__, __TL__)
Definition: fw_tim.h:116
#define TIM_Timer3_Set1TMode(__STATE__)
Definition: fw_tim.h:96
#define TIM_Timer1_Set1TMode(__STATE__)
Definition: fw_tim.h:57
#define TIM_Timer3_SetPreScaler(__PRE__)
Definition: fw_tim.h:101
#define TIM_Timer2_SetInitValue(__TH__, __TL__)
Definition: fw_tim.h:82
#define TIM_Timer0_SetInitValue(__TH__, __TL__)
Definition: fw_tim.h:44
#define TIM_Timer3_SetInitValue(__TH__, __TL__)
Definition: fw_tim.h:99
#define TIM_Timer2_SetPreScaler(__PRE__)
Definition: fw_tim.h:84
#define TIM_Timer1_SetMode(__TIM_TIMER_MODE__)
Definition: fw_tim.h:60
#define TIM_Timer2_Set1TMode(__STATE__)
Definition: fw_tim.h:79
#define TIM_Timer4_SetPreScaler(__PRE__)
Definition: fw_tim.h:118
#define TIM_Timer1_SetInitValue(__TH__, __TL__)
Definition: fw_tim.h:61
#define TIM_Timer4_Set1TMode(__STATE__)
Definition: fw_tim.h:113
#define TIM_Timer0_SetMode(__TIM_TIMER_MODE__)
Definition: fw_tim.h:43
unsigned long uint32_t
Definition: fw_types.h:20
unsigned short uint16_t
Definition: fw_types.h:19
HAL_State_t
Definition: fw_types.h:69
short int16_t
Definition: fw_types.h:24
unsigned char uint8_t
Definition: fw_types.h:18