Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
H
haoJin750TFT
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
时昊
haoJin750TFT
Commits
68ad56c7
Commit
68ad56c7
authored
Aug 13, 2024
by
王佳伟
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' of
http://tyw-server.synology.me:12345/shihao/haojin750tft
into wjw_dev
parents
f6c58998
2e05216e
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
73 additions
and
92 deletions
+73
-92
BackLight.c
Firmware/Source/Application/BackLight.c
+1
-1
GpioUser.c
Firmware/Source/Application/GpioUser.c
+1
-1
AMT630H_Datas.c
Firmware/Source/Component/AMT630H/AMT630H_Datas.c
+2
-0
Services_Mileage_User.c
Firmware/Source/Component/Mileage/Services_Mileage_User.c
+32
-32
PowerManag_user.c
Firmware/Source/Component/PowerManagement/PowerManag_user.c
+5
-5
TrmerM.c
...are/Source/Device/Cmsemicon/BAT32A279/RTE/TrmerM/TrmerM.c
+32
-53
No files found.
Firmware/Source/Application/BackLight.c
View file @
68ad56c7
...
...
@@ -519,6 +519,6 @@ void BackLight_Process(void)
}
else
{
;
TimerM_PWM_set_duty
(
TIMERM_COUNTER1
,
TIMERM_CHB
,
BACK_LIGHT_Val_4
)
;
}
}
Firmware/Source/Application/GpioUser.c
View file @
68ad56c7
...
...
@@ -20,7 +20,7 @@ void Gpio_Init(_GpioUser_Enum InitMode)
RTE_GPIO_Config
(
RTE_GPIO_PORT00_PIN05
,
GpioOut_Low
);
//L_BiasBitSW 里程百位---
RTE_GPIO_Config
(
RTE_GPIO_PORT00_PIN06
,
GpioOut_Low
);
//L_BiasBitSW 里程千位---
RTE_GPIO_Config
(
RTE_GPIO_PORT01_PIN00
,
RTE_GPIO_DIR_OUT
);
//表盘背光-PWM
RTE_GPIO_Config
(
RTE_GPIO_PORT01_PIN00
,
GpioOut_Low
);
//表盘背光-PWM
RTE_GPIO_Config
(
RTE_GPIO_PORT01_PIN01
,
GpioOut_Low
);
//RXD-ESP-IN-MCU
RTE_GPIO_Config
(
RTE_GPIO_PORT01_PIN02
,
GpioOut_Low
);
//TXD-ESP-IN-MCU
RTE_GPIO_Config
(
RTE_GPIO_PORT01_PIN03
,
RTE_GPIO_DIR_IN
);
...
...
Firmware/Source/Component/AMT630H/AMT630H_Datas.c
View file @
68ad56c7
...
...
@@ -3402,6 +3402,7 @@ static void AMT630H_GUI_Trip(uint32_t Trip, uint8_t Uint)
SetPagePic
(
GRAPHICS_PAGE_0
,
Pic_0861_91_324
);
/*单位mile*/
}
}
DisplayNum
(
GRAPHICS_PAGE_0
,
&
DisplayNumPara
,
Tripnumber
);
}
else
if
(
g_u8Display_Mode
==
ModeNIGHT
)
{
...
...
@@ -3457,6 +3458,7 @@ static void AMT630H_GUI_Trip(uint32_t Trip, uint8_t Uint)
SetPagePic
(
GRAPHICS_PAGE_0
,
Pic_0863_91_324
);
/*单位mile*/
}
}
DisplayNum
(
GRAPHICS_PAGE_0
,
&
DisplayNumPara
,
Tripnumber
);
}
}
...
...
Firmware/Source/Component/Mileage/Services_Mileage_User.c
View file @
68ad56c7
...
...
@@ -75,7 +75,7 @@ void Data_User_Mileage_KL30Init(void)
{
ODOInit
.
Offset
=
TempBuf
[
2
];
}
ODOInit
.
MaxValue
=
16103058
;
ODOInit
.
MaxValue
=
9999999
;
Data_ODO_KL30_Init
(
DataODOBuf
,
&
ODOInit
,
Func
.
EEPromWrite_Cbk
);
(
void
)
Data_User_EEPROM_Read
(
EM_TRIP_BLOCK
,
TempBuf
+
3
,
8
);
...
...
@@ -194,18 +194,18 @@ void Services_Mileage_Callback(void)
uint32_t
Get_ODO_Value
(
void
)
{
uint32_t
ODO
=
0
;
//
if (Get_Dis_Unit() == 0) /* 公制 */
//
{
//
ODO = Data_ODO_Read();
//
}
//
else if (Get_Dis_Unit() == 1) /* 英制 */
//
{
//
ODO = Data_Km_To_Mile(Data_ODO_Read());
//
}
//
else /* 无效值,按照公里处理,理论上不会执行到这 */
//
{
//
ODO = Data_ODO_Read();
//
}
if
(
Get_Dis_Unit
()
==
0
)
/* 公制 */
{
ODO
=
Data_ODO_Read
();
}
else
if
(
Get_Dis_Unit
()
==
1
)
/* 英制 */
{
ODO
=
Data_Km_To_Mile
(
Data_ODO_Read
());
}
else
/* 无效值,按照公里处理,理论上不会执行到这 */
{
ODO
=
Data_ODO_Read
();
}
return
ODO
;
}
...
...
@@ -216,18 +216,18 @@ uint32_t Get_ODO_Value(void)
uint32_t
Get_Trip_Value
(
void
)
{
uint32_t
Trip
=
0
;
//
if (Get_Dis_Unit() == 0) /* 公制 */
//
{
//
Trip = Data_Read_Trip(EM_TRIP_A);
//
}
//
else if (Get_Dis_Unit() == 1) /* 英制 */
//
{
//
Trip = Data_Km_To_Mile(Data_Read_Trip(EM_TRIP_A));
//
}
//
else /* 无效值,按照公里处理,理论上不会执行到这 */
//
{
//
Trip = Data_Read_Trip(EM_TRIP_A);
//
}
if
(
Get_Dis_Unit
()
==
0
)
/* 公制 */
{
Trip
=
Data_Read_Trip
(
EM_TRIP_A
);
}
else
if
(
Get_Dis_Unit
()
==
1
)
/* 英制 */
{
Trip
=
Data_Km_To_Mile
(
Data_Read_Trip
(
EM_TRIP_A
));
}
else
/* 无效值,按照公里处理,理论上不会执行到这 */
{
Trip
=
Data_Read_Trip
(
EM_TRIP_A
);
}
return
Trip
;
}
...
...
@@ -237,13 +237,13 @@ uint32_t Get_Trip_Value(void)
*/
void
Trip_Clear_Km_Service
(
void
)
{
//
if (Get_Dis_Unit() == 0) /* 公制 */
//
{
//
if (Data_Read_Trip(EM_TRIP_A) > 9999) /* 当前单位在KM时,里程大于999.9KM进行清零 */
//
{
//
Data_Clear_Trip_All();
//
}
//
}
if
(
Get_Dis_Unit
()
==
0
)
/* 公制 */
{
if
(
Data_Read_Trip
(
EM_TRIP_A
)
>
9999
)
/* 当前单位在KM时,里程大于999.9KM进行清零 */
{
Data_Clear_Trip_All
();
}
}
}
...
...
Firmware/Source/Component/PowerManagement/PowerManag_user.c
View file @
68ad56c7
...
...
@@ -56,7 +56,7 @@ static void Power_KL30_Init(void)
Fuel_KL30_Init
();
Amt630hInit
();
Telltales_Init
();
TimerM_PWM_counter_Output_Init
(
TIMERM_COUNTER1
,
4
00
,
64000000
);
TimerM_PWM_counter_Output_Init
(
TIMERM_COUNTER1
,
200
00
,
64000000
);
TimerM_PWM_CH_Output_init
(
TIMERM_COUNTER1
,
TIMERM_CHB
,
ActiveLevel_High
);
g_stRTCInformation
.
u8RTCSecond
=
0
;
g_stRTCInformation
.
u8RTCMinute
=
0
;
...
...
@@ -68,7 +68,7 @@ static void Power_KL30_Init(void)
Menu_User_Init
();
Can_Init
();
Protocol_KL30_Wakeup_Init
();
TimerM_PWM_set_duty
(
TIMERM_COUNTER1
,
TIMERM_CHB
,
1
00
);
TimerM_PWM_set_duty
(
TIMERM_COUNTER1
,
TIMERM_CHB
,
5
00
);
RTE_DEEPSLEEP_GPIO_Interrupt_Enable
(
KL15_AD_IN
,
Trigger_Rising
);
FaultCode_Init
();
}
...
...
@@ -88,7 +88,7 @@ static void Power_Wakeup_Init(void)
Line_In_KL15_ON_Init
();
Fuel_KL30_Init
();
Amt630hInit
();
TimerM_PWM_counter_Output_Init
(
TIMERM_COUNTER1
,
4
00
,
64000000
);
TimerM_PWM_counter_Output_Init
(
TIMERM_COUNTER1
,
200
00
,
64000000
);
TimerM_PWM_CH_Output_init
(
TIMERM_COUNTER1
,
TIMERM_CHB
,
ActiveLevel_High
);
Telltales_Init
();
Key_KL30_Init_EXample
();
...
...
@@ -120,13 +120,13 @@ static void Power_IG_ON_Init(void)
Line_In_KL15_ON_Init
();
Telltales_KL15_Init
();
Fuel_KL15_Init
();
RTE_GPIO_Set_Level
(
Blacklight_PWM
,
1
);
//
RTE_GPIO_Set_Level(Blacklight_PWM, 1);
FaultCode_Init
();
}
static
void
Power_Sleep_Init
(
void
)
{
TimerM_PWM_counter_Output_Init
(
TIMERM_COUNTER1
,
4
00
,
0
);
TimerM_PWM_counter_Output_Init
(
TIMERM_COUNTER1
,
200
00
,
0
);
rte_can_deinit
(
CAN_CH_0
);
TMM0_Stop
();
TMM1_Stop
();
...
...
Firmware/Source/Device/Cmsemicon/BAT32A279/RTE/TrmerM/TrmerM.c
View file @
68ad56c7
/*
* TrmerM.c
*
* Created on: 2024
�?2�?21�?
* Created on: 2024
年2月21日
*/
#include <stdint.h>
// #include "gpio.h"
...
...
@@ -25,21 +25,21 @@ typedef struct
// /*占空比精度千分之一*/
// extern void TimerB_PWM_Channel_Duty_Set(TIMERB_Channel_en_t enTimerBChannel, uint16_t u16Duty);
// extern void TimerB_PWM_Channel_Start(TIMERB_Channel_en_t enTimerBChannel);
// /*调用该函数后,仅重新调用开始函数功能即可正常使
�?
*/
// /*调用该函数后,仅重新调用开始函数功能即可正常使
用
*/
// extern void TimerB_PWM_Channel_Stop(TIMERB_Channel_en_t enTimerBChannel);
// /*仅休眠时可调用,调用该函数后需要重新初始化相关通道才可以正常使用
�?
*/
// /*仅休眠时可调用,调用该函数后需要重新初始化相关通道才可以正常使用
。
*/
// extern void TimerB_PWM_Channel_Sleep(TIMERB_Channel_en_t enTimerBChannel);
TMM_InitTypeDef
TIMM_InitStructure
[
2
]
=
{
0
};
static
uint32_t
cycle_pulse
[
2
];
//一个周期的时钟
�?
//频率
static
uint32_t
high_level_Pulse
[
2
][
3
];
//高电平时钟数 //占空
�?
static
uint32_t
cycle_pulse
[
2
];
//一个周期的时钟
数
//频率
static
uint32_t
high_level_Pulse
[
2
][
3
];
//高电平时钟数 //占空
比
static
uint32_t
pwm_duty
[
2
][
3
];
/**
* @brief 设置TimerM的定时器x的模式为比较输出
*
* @param counter 定时
�?
* @param counter 定时
器
* @param freq 比较输出频率
* @return uint8_t 返回0成功,非0失败
*/
...
...
@@ -48,32 +48,20 @@ uint8_t TimerM_PWM_counter_Output_Init(TIMERM_PWM_Counter_en_t counter, uint16_t
if
(
counter
==
TIMERM_COUNTER0
)
{
TIMM_InitStructure
[
counter
].
TMM_Select
=
TMM0
;
TIMM_InitStructure
[
counter
].
TMM_Channel
=
TMM_Channel_A
|
TMM_Channel_B
|
TMM_Channel_C
|
TMM_Channel_D
;
TIMM_InitStructure
[
counter
].
TMM_Mode
=
TMM_Mode_PWM
;
TIMM_InitStructure
[
counter
].
TMM_CounterClear
=
TM_Clear_Match_TMGRA
;
//when TM is matched with TMGRA, TM0 is cleared
TIMM_InitStructure
[
counter
].
TMM_Intp
=
TMM_Int_NONE
;
///compare match interrupt enable A (IMIEA)
}
else
if
(
counter
==
TIMERM_COUNTER1
)
{
TIMM_InitStructure
[
counter
].
TMM_Select
=
TMM1
;
TIMM_InitStructure
[
counter
].
TMM_Channel
=
TMM_Channel_A
|
TMM_Channel_B
;
//|TMM_Channel_C|TMM_Channel_D;
TIMM_InitStructure
[
counter
].
TMM_Mode
=
TMM_Mode_PWM
;
TIMM_InitStructure
[
counter
].
TMM_CounterClear
=
TM_Clear_Match_TMGRA
;
//when TM is matched with TMGRA, TM0 is cleared
TIMM_InitStructure
[
counter
].
TMM_Intp
=
TMM_Int_NONE
;
///compare match interrupt enable A (IMIEA)
}
else
{
return
1
;
}
//
TIMM_InitStructure[counter].TMM_Channel = TMM_Channel_A|TMM_Channel_B|TMM_Channel_C|TMM_Channel_D;
//
TIMM_InitStructure[counter].TMM_Mode = TMM_Mode_PWM;
//
TIMM_InitStructure[counter].TMM_CounterClear = TM_Clear_Match_TMGRA; //when TM is matched with TMGRA, TM0 is cleared
// TIMM_InitStructure[counter].TMM_Intp = TMM_Int_IMIA
; ///compare match interrupt enable A (IMIEA)
TIMM_InitStructure
[
counter
].
TMM_Channel
=
TMM_Channel_A
|
TMM_Channel_B
|
TMM_Channel_C
|
TMM_Channel_D
;
TIMM_InitStructure
[
counter
].
TMM_Mode
=
TMM_Mode_PWM
;
TIMM_InitStructure
[
counter
].
TMM_CounterClear
=
TM_Clear_Match_TMGRA
;
//when TM is matched with TMGRA, TM0 is cleared
TIMM_InitStructure
[
counter
].
TMM_Intp
=
TMM_Int_NONE
;
///compare match interrupt enable A (IMIEA)
if
(
freq
>
2000
)
{
...
...
@@ -95,7 +83,7 @@ uint8_t TimerM_PWM_counter_Output_Init(TIMERM_PWM_Counter_en_t counter, uint16_t
return
1
;
}
TIMM_InitStructure
[
counter
].
TMM_CHA_Pulse
=
cycle_pulse
[
counter
]
&
0x0FFFF
;
//这里需要计算,调试
�?
period; //周期设置为period
TIMM_InitStructure
[
counter
].
TMM_CHA_Pulse
=
cycle_pulse
[
counter
]
&
0x0FFFF
;
//这里需要计算,调试
下
period; //周期设置为period
...
...
@@ -115,34 +103,23 @@ uint8_t TimerM_PWM_counter_Output_Init(TIMERM_PWM_Counter_en_t counter, uint16_t
//uint8_t TimerM_PWM_counter_Output_Init(TIMERM_PWM_Counter_en_t counter, uint16_t freq)//, uint32_t PWM_Clock //SystemCoreClock
//{
// SystemCoreClock = 64000000UL;
//
// if (counter == TIMERM_COUNTER0)
// if (counter == TIMERM_COUNTER0)
// {
// TIMM_InitStructure[counter].TMM_Select = TMM0;
//
// TIMM_InitStructure[counter].TMM_Channel = TMM_Channel_B|TMM_Channel_C|TMM_Channel_D;
// TIMM_InitStructure[counter].TMM_Mode = TMM_Mode_PWM;
// TIMM_InitStructure[counter].TMM_CounterClear = TM_Clear_Match_TMGRA; //when TM is matched with TMGRA, TM0 is cleared
// TIMM_InitStructure[counter].TMM_Intp = TMM_Int_IMIA; ///compare match interrupt enable A (IMIEA)
// }
// else if (counter == TIMERM_COUNTER1)
// {
// TIMM_InitStructure[counter].TMM_Select = TMM1;
// TIMM_InitStructure[counter].TMM_Channel = TMM_Channel_B;
// TIMM_InitStructure[counter].TMM_Mode = TMM_Mode_PWM;
// TIMM_InitStructure[counter].TMM_CounterClear = TM_Clear_Match_TMGRA; //when TM is matched with TMGRA, TM0 is cleared
// TIMM_InitStructure[counter].TMM_Intp = TMM_Int_IMIA; ///compare match interrupt enable A (IMIEA)
// }
// else
// {
// return 1;
// }
//
//
//
TIMM_InitStructure[counter].TMM_Channel = TMM_Channel_A|TMM_Channel_B|TMM_Channel_C|TMM_Channel_D;
//
//
TIMM_InitStructure[counter].TMM_Mode = TMM_Mode_PWM;
//
//
TIMM_InitStructure[counter].TMM_CounterClear = TM_Clear_Match_TMGRA; //when TM is matched with TMGRA, TM0 is cleared
//
//
TIMM_InitStructure[counter].TMM_Intp = TMM_Int_IMIA; ///compare match interrupt enable A (IMIEA)
// TIMM_InitStructure[counter].TMM_Channel = TMM_Channel_A|TMM_Channel_B|TMM_Channel_C|TMM_Channel_D;
// TIMM_InitStructure[counter].TMM_Mode = TMM_Mode_PWM;
// TIMM_InitStructure[counter].TMM_CounterClear = TM_Clear_Match_TMGRA; //when TM is matched with TMGRA, TM0 is cleared
// TIMM_InitStructure[counter].TMM_Intp = TMM_Int_IMIA; ///compare match interrupt enable A (IMIEA)
//
// if (freq > 2000)
// {
...
...
@@ -164,7 +141,7 @@ uint8_t TimerM_PWM_counter_Output_Init(TIMERM_PWM_Counter_en_t counter, uint16_t
// return 1;
// }
//
// TIMM_InitStructure[counter].TMM_CHA_Pulse = cycle_pulse[counter] & 0x0FFFF;//这里需要计算,调试
�?
period; //周期设置为period
// TIMM_InitStructure[counter].TMM_CHA_Pulse = cycle_pulse[counter] & 0x0FFFF;//这里需要计算,调试
下
period; //周期设置为period
//
//
//
...
...
@@ -187,9 +164,9 @@ uint8_t TimerM_PWM_counter_Output_Init(TIMERM_PWM_Counter_en_t counter, uint16_t
/**
* @brief 设置timerM定时器x通道x的占空比
*
* @param counter 定时
�?
* @param counter 定时
器
* @param ch 通道
* @param duty 占空
�? xxxx/1000 千分�?
* @param duty 占空
比 xxxx/1000 千分之
* @param ActiveLevel 0负占空比 1正占空比
* @return uint8_t 返回0成功,非0失败
*/
...
...
@@ -201,7 +178,7 @@ uint8_t TimerM_PWM_CH_Output_init(TIMERM_PWM_Counter_en_t counter, TIMERM_PWM_Ch
switch
(
ch
)
{
case
TIMERM_CHB
:
TIMM_InitStructure
[
counter
].
TMM_CHB_Pulse
=
((
cycle_pulse
[
counter
])
)
&
0x0FFFF
;
//TM计数达到TMGRB. 占空
�?
:duty2/period
TIMM_InitStructure
[
counter
].
TMM_CHB_Pulse
=
((
cycle_pulse
[
counter
])
)
&
0x0FFFF
;
//TM计数达到TMGRB. 占空
比
:duty2/period
TIMM_InitStructure
[
counter
].
TMM_PWM
.
TMM_CHB
.
TMM_PWMInitLevel
=
TMM_PWMInitLevel_High
;
TIMM_InitStructure
[
counter
].
TMM_PWM
.
TMM_CHB
.
TMM_PWMActiveLevel
=
ActiveLevel
;
if
(
counter
==
TIMERM_COUNTER0
)
...
...
@@ -217,7 +194,7 @@ uint8_t TimerM_PWM_CH_Output_init(TIMERM_PWM_Counter_en_t counter, TIMERM_PWM_Ch
break
;
case
TIMERM_CHC
:
TIMM_InitStructure
[
counter
].
TMM_CHC_Pulse
=
((
cycle_pulse
[
counter
])
)
&
0x0FFFF
;
//TM计数达到TMGRC. 占空
�?
:duty2/period
TIMM_InitStructure
[
counter
].
TMM_CHC_Pulse
=
((
cycle_pulse
[
counter
])
)
&
0x0FFFF
;
//TM计数达到TMGRC. 占空
比
:duty2/period
TIMM_InitStructure
[
counter
].
TMM_PWM
.
TMM_CHC
.
TMM_PWMInitLevel
=
TMM_PWMInitLevel_High
;
TIMM_InitStructure
[
counter
].
TMM_PWM
.
TMM_CHC
.
TMM_PWMActiveLevel
=
ActiveLevel
;
if
(
counter
==
TIMERM_COUNTER0
)
...
...
@@ -232,7 +209,7 @@ uint8_t TimerM_PWM_CH_Output_init(TIMERM_PWM_Counter_en_t counter, TIMERM_PWM_Ch
break
;
case
TIMERM_CHD
:
TIMM_InitStructure
[
counter
].
TMM_CHD_Pulse
=
((
cycle_pulse
[
counter
])
)
&
0x0FFFF
;
//TM计数达到TMGRD. 占空
�?
:duty3/period
TIMM_InitStructure
[
counter
].
TMM_CHD_Pulse
=
((
cycle_pulse
[
counter
])
)
&
0x0FFFF
;
//TM计数达到TMGRD. 占空
比
:duty3/period
TIMM_InitStructure
[
counter
].
TMM_PWM
.
TMM_CHD
.
TMM_PWMInitLevel
=
TMM_PWMInitLevel_High
;
//TMM_PWMInitLevel_High;//
TIMM_InitStructure
[
counter
].
TMM_PWM
.
TMM_CHD
.
TMM_PWMActiveLevel
=
ActiveLevel
;
//TMM_PWMActiveLevel_Low;//TMM_PWMActiveLevel_High;//
if
(
counter
==
TIMERM_COUNTER0
)
...
...
@@ -250,13 +227,15 @@ uint8_t TimerM_PWM_CH_Output_init(TIMERM_PWM_Counter_en_t counter, TIMERM_PWM_Ch
return
1
;
//break;
}
TMM_Init
(
&
TIMM_InitStructure
[
counter
]);
GPIO_InitStruct
.
GPIO_Mode
=
GPIO_Mode_OUT
;
GPIO_InitStruct
.
GPIO_Level
=
GPIO_Level_LOW
;
GPIO_InitStruct
.
GPIO_OType
=
GPIO_OType_PP
;
GPIO_InitStruct
.
GPIO_PuPd
=
GPIO_PuPd_NOPULL
;
TMM_Init
(
&
TIMM_InitStructure
[
counter
]);
GPIO_Init
(
GPIO_PORT1
,
&
GPIO_InitStruct
);
if
(
counter
==
TIMERM_COUNTER0
)
{
TMM0_Start
(
ENABLE
);
...
...
@@ -270,7 +249,7 @@ uint8_t TimerM_PWM_CH_Output_init(TIMERM_PWM_Counter_en_t counter, TIMERM_PWM_Ch
return
1
;
}
GPIO_Init
(
GPIO_PORT1
,
&
GPIO_InitStruct
);
high_level_Pulse
[
counter
][
ch
]
=
((
cycle_pulse
[
counter
])
)
&
0x0FFFF
;
pwm_duty
[
counter
][
ch
]
=
1000
;
...
...
@@ -287,7 +266,7 @@ extern void TMM1_Set_Counter(uint8_t ch,uint16_t value);
*
* @param counter 定时器x
* @param ch 通道x
* @param duty 占空
�?
千分之一
* @param duty 占空
比
千分之一
* @return uint8_t 返回0成功,非0失败
*/
uint8_t
TimerM_PWM_set_duty
(
TIMERM_PWM_Counter_en_t
counter
,
TIMERM_PWM_Channel_en_t
ch
,
uint16_t
duty
)
...
...
@@ -325,11 +304,11 @@ uint8_t TimerM_PWM_set_duty(TIMERM_PWM_Counter_en_t counter, TIMERM_PWM_Channel_
*
* @param counter 定时器x
* @param freq PWM频率
* @return uint8_t 0成功
�?
0失败
* @return uint8_t 0成功
非
0失败
*
* @note 频率范围有两种,50~2000 2001~最大,如果初始话的频率和目标频率在一个区间可以使用TimerM_PWM_set_freq2函数来优雅的切换频率
�?
* @note 频率范围有两种,50~2000 2001~最大,如果初始话的频率和目标频率在一个区间可以使用TimerM_PWM_set_freq2函数来优雅的切换频率
,
* 如果不在一个频率区间就需要使用TimerM_PWM_set_freq来不优雅的切换频率,
* 如果看不懂注释也使用TimerM_PWM_set_freq来切换频率
�?
* 如果看不懂注释也使用TimerM_PWM_set_freq来切换频率
。
*/
uint8_t
TimerM_PWM_set_freq
(
TIMERM_PWM_Counter_en_t
counter
,
uint16_t
freq
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment