Commit 5c3214b7 authored by hu's avatar hu

调整车速频率为模拟翻转方式发送

parent 583f43ad
......@@ -39,30 +39,6 @@ void Speed_PPK_Processing(void)
{
Frequency = 0u;
}
/*
if (Frequency == 0u)
{
Frequency = 0u;
}
else if (Frequency >= 1u)
{
Frequency = Frequency;
}
else
{
Frequency = 1u;
}
if (Frequency != 0u)
{
m_Clock = Speed_Clock / Frequency;
m_Duty = m_Clock / 2u;
}
else
{
m_Clock = 0u;
m_Duty = 0u;
}
*/
RTE_PWM_Set_Speed_Out(Frequency, 500);
}
\ No newline at end of file
......@@ -3,9 +3,6 @@
#include "TYW_stdint.h"
#define FE_7B_PPK 2500u
#define Speed_Clock 64453u /*PWM时钟512分频之后*/
uint16_t Speed_PPK_Calc(uint16_t V_Speed, uint16_t m_PPK);
void Speed_PPK_Processing(void);
......
......@@ -5,6 +5,7 @@
#include "Common_Interface.h"
#include "GUI.h"
#include "kwp2000_service.h"
#include "GPIO.h"
static uint32_t SPEED_RADIO = 637u;
......@@ -22,6 +23,9 @@ uint16_t GslYblSpeedTime ;
volatile uint32_t VehFreBuf[VehFreNum];
DriveInfoSpeedPlusConverterStruct DriveInfoSpeed1PlusConverter;
DriveInfoSpeedPlusConverterStruct DriveInfoSpeed2PlusConverter;
void Speed_KL30_Init(void)
{
uint8_t i = 0u;
......@@ -55,6 +59,19 @@ void Speed_KL15_ON_Init(void)
Speed_Old = 0u;
GslYblSpeedTime = 0u;
DriveInfoSpeed1PlusConverter.Enable = 0;
DriveInfoSpeed1PlusConverter.Level = 1;
DriveInfoSpeed1PlusConverter.Timer = 0xFFFFFFFE;
DriveInfoSpeed1PlusConverter.Period = 0xFFFFFFFF;
DriveInfoSpeed1PlusConverter.ActPeriod = 0xFFFFFFFF;
DriveInfoSpeed2PlusConverter.Enable = 0;
DriveInfoSpeed2PlusConverter.Level = 1;
DriveInfoSpeed2PlusConverter.Timer = 0xFFFFFFFE;
DriveInfoSpeed2PlusConverter.Period = 0xFFFFFFFF;
DriveInfoSpeed2PlusConverter.ActPeriod = 0xFFFFFFFF;
}
void Speed_KL15_OFF_Init(void)
......@@ -353,14 +370,117 @@ void Data_GsLYbL_Speed_Processing(void)
}
//15925
//5096
void Drive_Info_Speed1_Plus_Conversion(void)
void Drive_Info_Speed1_Plus_Conversion_ISR ( void )
{
if ( DriveInfoSpeed1PlusConverter.Enable )
{
DriveInfoSpeed1PlusConverter.Timer++;
if ( DriveInfoSpeed1PlusConverter.ActPeriod >= 10000u )
DriveInfoSpeed1PlusConverter.ActPeriod = DriveInfoSpeed1PlusConverter.Period;
if ( DriveInfoSpeed1PlusConverter.Timer >= DriveInfoSpeed1PlusConverter.ActPeriod )
{
DriveInfoSpeed1PlusConverter.Timer = 0;
if ( DriveInfoSpeed1PlusConverter.Level )
{
DriveInfoSpeed1PlusConverter.Level = 0;
DriveInfoSpeed1PlusConverter.ActPeriod = DriveInfoSpeed1PlusConverter.Period;
}
else
DriveInfoSpeed1PlusConverter.Level = 1;
}
SPEED1_PWM_MCU_OUT = DriveInfoSpeed1PlusConverter.Level;
}
}
void Drive_Info_Speed1_Plus_Conversion ( void )
{
uint32_t Speed;
if ( ( Speed_Get_Valid() == 1u ) && ( Common_Get_Disp_V_Speed() >= 0u ) )
{
Speed = ( uint32_t ) Common_Get_Disp_V_Speed();
DriveInfoSpeed1PlusConverter.Period = ( uint32_t ) ( 360000000 / 15925) / Speed;
DriveInfoSpeed1PlusConverter.Enable = 1;
}
else
{
if ( DriveInfoSpeed1PlusConverter.Enable )
{
DriveInfoSpeed1PlusConverter.Enable = 0;
DriveInfoSpeed1PlusConverter.Level = 0;
DriveInfoSpeed1PlusConverter.Timer = 0;
DriveInfoSpeed1PlusConverter.Period = 0xFFFFFFFF;
DriveInfoSpeed1PlusConverter.ActPeriod = 0xFFFFFFFF;
}
SPEED1_PWM_MCU_OUT = 1;
}
}
void Drive_Info_Speed2_Plus_Conversion_ISR ( void )
{
uint32_t Veh_Frequenc = 0u;
if ( DriveInfoSpeed2PlusConverter.Enable )
{
DriveInfoSpeed2PlusConverter.Timer++;
if ( DriveInfoSpeed2PlusConverter.ActPeriod >= 10000u )
DriveInfoSpeed2PlusConverter.ActPeriod = DriveInfoSpeed2PlusConverter.Period;
Veh_Frequenc = Cal_Veh_Frequency();
Veh_Frequenc *= 10u;
TimerB_PWM_Channel_Fre_Set(TIMERB_2_CH10, Veh_Frequenc, 500u);/*车速1 25*/
if ( DriveInfoSpeed2PlusConverter.Timer >= DriveInfoSpeed2PlusConverter.ActPeriod )
{
DriveInfoSpeed2PlusConverter.Timer = 0;
Veh_Frequenc = Veh_Frequenc * 5096 / 15925;
TimerB_PWM_Channel_Fre_Set(TIMERB_2_CH13, Veh_Frequenc, 500u);/*车速2 8*/
}
\ No newline at end of file
if ( DriveInfoSpeed2PlusConverter.Level )
{
DriveInfoSpeed2PlusConverter.Level = 0;
DriveInfoSpeed2PlusConverter.ActPeriod = DriveInfoSpeed2PlusConverter.Period;
}
else
DriveInfoSpeed2PlusConverter.Level = 1;
}
SPEED2_PWM_MCU_OUT = DriveInfoSpeed2PlusConverter.Level;
SPEED3_PWM_MCU_OUT = DriveInfoSpeed2PlusConverter.Level;
}
}
void Drive_Info_Speed2_Plus_Conversion ( void )
{
uint32_t Speed;
if ( ( Speed_Get_Valid() == 1u ) && ( Common_Get_Disp_V_Speed() >= 0u ) )
{
Speed = ( uint32_t ) Common_Get_Disp_V_Speed();
DriveInfoSpeed2PlusConverter.Period = ( uint32_t ) ( 360000000 / 5096) / Speed;
DriveInfoSpeed2PlusConverter.Enable = 1;
}
else
{
if ( DriveInfoSpeed2PlusConverter.Enable )
{
DriveInfoSpeed2PlusConverter.Enable = 0;
DriveInfoSpeed2PlusConverter.Level = 0;
DriveInfoSpeed2PlusConverter.Timer = 0;
DriveInfoSpeed2PlusConverter.Period = 0xFFFFFFFF;
DriveInfoSpeed2PlusConverter.ActPeriod = 0xFFFFFFFF;
}
SPEED2_PWM_MCU_OUT = 1;
SPEED3_PWM_MCU_OUT = 1;
}
}
//void Drive_Info_Speed2_Plus_Conversion(void)
//{
// uint32_t Veh_Frequenc = 0u;
//
// Veh_Frequenc = Cal_Veh_Frequency();
// Veh_Frequenc *= 10u;
// TimerB_PWM_Channel_Fre_Set(TIMERB_2_CH10, Veh_Frequenc, 500u);/*车速1 25*/
//
// Veh_Frequenc = Veh_Frequenc * 5096 / 15925;
// TimerB_PWM_Channel_Fre_Set(TIMERB_2_CH13, Veh_Frequenc, 500u);/*车速2 8*/
//
// TimerB_PWM_Channel_Fre_Set(TIMERB_2_CH15, Veh_Frequenc, 500u);/*车速3 8*/
//}
\ No newline at end of file
......@@ -24,6 +24,15 @@ extern _ACCSUBSPEED AccSubSpeed;
extern uint16_t Speed_Old ;
extern uint16_t GslYblSpeedTime ;
typedef struct
{
uint32_t Enable;
uint32_t Level;
uint32_t Timer;
uint32_t Period;
uint32_t ActPeriod;
} DriveInfoSpeedPlusConverterStruct;
extern void Speed_KL30_Init(void);
extern void Speed_KL15_ON_Init(void);
extern void Speed_KL15_OFF_Init(void);
......@@ -41,6 +50,11 @@ extern uint8_t Speed_Get_Valid(void);
extern uint8_t Speed_Get_CurSeg(void);
extern void Data_Acc_Speed_Processing(void);
extern void Data_GsLYbL_Speed_Processing(void);
extern void Drive_Info_Speed1_Plus_Conversion(void);
extern void Drive_Info_Speed1_Plus_Conversion_ISR ( void );
extern void Drive_Info_Speed2_Plus_Conversion(void);
extern void Drive_Info_Speed2_Plus_Conversion_ISR ( void );
#endif
......@@ -76,13 +76,13 @@ void RTE_PWM_Set_Speed_Out(uint16_t m_Cycle, uint16_t m_Duty)
/*A16-25 A17-8 A18-8*/
/*车速1 25脉冲*/
//ActSetFreq = TimerB_PWM_Channel_Fre_Set(TIMERB_2_CH10 , m_Cycle , m_Duty);
//ActSetFreq = TimerB_PWM_Channel_Fre_Set(TIMERB_2_CH10 , Fre_8_pulse , m_Duty);
/*车速2 8脉冲*/
//ActSetFreq = TimerB_PWM_Channel_Fre_Set(TIMERB_2_CH13 , Fre_8_pulse , m_Duty);
//ActSetFreq = TimerB_PWM_Channel_Fre_Set(TIMERB_2_CH13 , m_Cycle , m_Duty);
/*车速3 8脉冲*/
//ActSetFreq = TimerB_PWM_Channel_Fre_Set(TIMERB_2_CH15 , Fre_8_pulse , m_Duty);
//ActSetFreq = TimerB_PWM_Channel_Fre_Set(TIMERB_2_CH15 , m_Cycle , m_Duty);
}
/*转速频率输出*/
......
......@@ -279,17 +279,17 @@ const uint32_t g_u32GPIOConfigArray[][2U] =
0x00010000ul, /*Pin_P42_11 GPIO_OUT SCHMITT1PDSC:L PU/PD:NULL P:L */
0x00010000ul, /*Pin_P42_11 GPIO_OUT SCHMITT1PDSC:L PU/PD:NULL P:L */
0x00000042ul, /*Pin_P42_12 TAUB2O11 SCHMITT1PDSC:L PU/PD:NULL P:L */
0x00000042ul, /*Pin_P42_12 TAUB2O11 SCHMITT1PDSC:L PU/PD:NULL P:L */
0x00010000ul, /*Pin_P42_12 GPIO_OUT SCHMITT1PDSC:L PU/PD:NULL P:L */
0x00010000ul, /*Pin_P42_12 GPIO_OUT SCHMITT1PDSC:L PU/PD:NULL P:L */
0x00000042ul, /*Pin_P42_13 TAUB2O13 SCHMITT1PDSC:L PU/PD:NULL P:L */
0x00000042ul, /*Pin_P42_13 TAUB2O13 SCHMITT1PDSC:L PU/PD:NULL P:L */
0x00010000ul, /*Pin_P42_13 GPIO_OUT SCHMITT1PDSC:L PU/PD:NULL P:L */
0x00010000ul, /*Pin_P42_13 GPIO_OUT SCHMITT1PDSC:L PU/PD:NULL P:L */
0x00010000ul, /*Pin_P42_14 GPIO_OUT SCHMITT1PDSC:L PU/PD:NULL P:L */
0x00010000ul, /*Pin_P42_14 GPIO_OUT SCHMITT1PDSC:L PU/PD:NULL P:L */
0x00000042ul, /*Pin_P42_15 TAUB2O15 SCHMITT1PDSC:L PU/PD:NULL P:L */
0x00000042ul, /*Pin_P42_15 TAUB2O15 SCHMITT1PDSC:L PU/PD:NULL P:L */
0x00010000ul, /*Pin_P42_15 GPIO_OUT SCHMITT1PDSC:L PU/PD:NULL P:L */
0x00010000ul, /*Pin_P42_15 GPIO_OUT SCHMITT1PDSC:L PU/PD:NULL P:L */
0x00010000ul, /*Pin_P43_0 GPIO_OUT SCHMITT1PDSC:L PU/PD:NULL P:L */
0x00010000ul, /*Pin_P43_0 GPIO_OUT SCHMITT1PDSC:L PU/PD:NULL P:L */
......
......@@ -494,7 +494,10 @@
#define TEMP_R_LED_OUT GPIO_OUT_PORT42_PIN09
#define TEMP_W_LED_OUT GPIO_OUT_PORT42_PIN10
#define R6_LED_OUT GPIO_OUT_PORT42_PIN11
#define SPEED1_PWM_MCU_OUT GPIO_OUT_PORT42_PIN12
#define SPEED2_PWM_MCU_OUT GPIO_OUT_PORT42_PIN13
#define D1530_EN_MCU_OUT GPIO_OUT_PORT42_PIN14
#define SPEED3_PWM_MCU_OUT GPIO_OUT_PORT42_PIN15
#define MCU_HS_OUT GPIO_OUT_PORT43_PIN00
#define MCU_VS_OUT GPIO_OUT_PORT43_PIN01
#define MCU_DB0_OUT GPIO_OUT_PORT44_PIN00
......
......@@ -528,9 +528,9 @@ static void TimerB_BackLight_Demo_Init(void)
static void TimerB_VehFreOut_Init(void)
{
//车速1
TimerB_PWM_Channel_Init(TIMERB_2_CH10 , TIMERB_CLOCK_0 , TIMERB_HIGH );
TimerB_PWM_Channel_Fre_Set(TIMERB_2_CH10 , 1U , 0u);
TimerB_PWM_Channel_Start(TIMERB_2_CH10 );
//TimerB_PWM_Channel_Init(TIMERB_2_CH10 , TIMERB_CLOCK_0 , TIMERB_HIGH );
//TimerB_PWM_Channel_Fre_Set(TIMERB_2_CH10 , 1U , 0u);
//TimerB_PWM_Channel_Start(TIMERB_2_CH10 );
//车速2
TimerB_PWM_Channel_Init(TIMERB_2_CH13, TIMERB_CLOCK_0, TIMERB_HIGH);
......
......@@ -255,8 +255,8 @@ void Sys_Run_Mode_100ms_Tasks(void)
Common_Set_K_Line_Value();
Common_DTC_Server();
/*车速频率外发*/
Drive_Info_Speed1_Plus_Conversion();
Drive_Info_Speed2_Plus_Conversion();
//YZHD_Count++;
//if (YZHD_Count == 20)
......@@ -305,6 +305,9 @@ void Sys_Exact_50us_Tasks(void)
}
Buzzer_Play_ISR();
Drive_Info_Speed1_Plus_Conversion_ISR();
Drive_Info_Speed2_Plus_Conversion_ISR();
/*----K_Line----*/
K_Line1ms_count ++;
if (K_Line1ms_count >= 20)
......
......@@ -280,17 +280,17 @@ const uint32_t g_u32GPIOConfigArray[][2U] =
0x00010000ul, /*Pin_P42_11 GPIO_OUT SCHMITT1PDSC:L PU/PD:NULL P:L */
0x00010000ul, /*Pin_P42_11 GPIO_OUT SCHMITT1PDSC:L PU/PD:NULL P:L */
0x00000042ul, /*Pin_P42_12 TAUB2O11 SCHMITT1PDSC:L PU/PD:NULL P:L */
0x00000042ul, /*Pin_P42_12 TAUB2O11 SCHMITT1PDSC:L PU/PD:NULL P:L */
0x00010000ul, /*Pin_P42_12 GPIO_OUT SCHMITT1PDSC:L PU/PD:NULL P:L */
0x00010000ul, /*Pin_P42_12 GPIO_OUT SCHMITT1PDSC:L PU/PD:NULL P:L */
0x00000042ul, /*Pin_P42_13 TAUB2O13 SCHMITT1PDSC:L PU/PD:NULL P:L */
0x00000042ul, /*Pin_P42_13 TAUB2O13 SCHMITT1PDSC:L PU/PD:NULL P:L */
0x00010000ul, /*Pin_P42_13 GPIO_OUT SCHMITT1PDSC:L PU/PD:NULL P:L */
0x00010000ul, /*Pin_P42_13 GPIO_OUT SCHMITT1PDSC:L PU/PD:NULL P:L */
0x00010000ul, /*Pin_P42_14 GPIO_OUT SCHMITT1PDSC:L PU/PD:NULL P:L */
0x00010000ul, /*Pin_P42_14 GPIO_OUT SCHMITT1PDSC:L PU/PD:NULL P:L */
0x00000042ul, /*Pin_P42_15 TAUB2O15 SCHMITT1PDSC:L PU/PD:NULL P:L */
0x00000042ul, /*Pin_P42_15 TAUB2O15 SCHMITT1PDSC:L PU/PD:NULL P:L */
0x00010000ul, /*Pin_P42_15 GPIO_OUT SCHMITT1PDSC:L PU/PD:NULL P:L */
0x00010000ul, /*Pin_P42_15 GPIO_OUT SCHMITT1PDSC:L PU/PD:NULL P:L */
0x00010000ul, /*Pin_P43_0 GPIO_OUT SCHMITT1PDSC:L PU/PD:NULL P:L */
0x00010000ul, /*Pin_P43_0 GPIO_OUT SCHMITT1PDSC:L PU/PD:NULL P:L */
......
......@@ -492,7 +492,10 @@
#define TEMP_R_LED_OUT GPIO_OUT_PORT42_PIN09
#define TEMP_W_LED_OUT GPIO_OUT_PORT42_PIN10
#define R6_LED_OUT GPIO_OUT_PORT42_PIN11
#define SPEED1_PWM_MCU_OUT GPIO_OUT_PORT42_PIN12
#define SPEED2_PWM_MCU_OUT GPIO_OUT_PORT42_PIN13
#define D1530_EN_MCU_OUT GPIO_OUT_PORT42_PIN14
#define SPEED3_PWM_MCU_OUT GPIO_OUT_PORT42_PIN15
#define MCU_HS_OUT GPIO_OUT_PORT43_PIN00
#define MCU_VS_OUT GPIO_OUT_PORT43_PIN01
#define MCU_DB0_OUT GPIO_OUT_PORT44_PIN00
......
......@@ -5430,7 +5430,7 @@
"pinName": "SPEED1_PWM_MCU_OUT",
"pinAddress": " 1J",
"wakeupPin": {
"pinModeName": "TAUB2O11",
"pinModeName": "GPIO_OUT",
"circuitName": "SCHMITT1",
"PINV": false,
"PODC": false,
......@@ -5440,18 +5440,18 @@
"PU": false,
"PD": false,
"PBDC": false,
"PIBC": false,
"PIBC": true,
"P": false,
"PPR": false,
"PMC": true,
"PMC": false,
"PIPC": false,
"PM": false,
"PFCAE": false,
"PFCE": true,
"PFCE": false,
"PFC": false
},
"sleepPin": {
"pinModeName": "TAUB2O11",
"pinModeName": "GPIO_OUT",
"circuitName": "SCHMITT1",
"PINV": false,
"PODC": false,
......@@ -5461,14 +5461,14 @@
"PU": false,
"PD": false,
"PBDC": false,
"PIBC": false,
"PIBC": true,
"P": false,
"PPR": false,
"PMC": true,
"PMC": false,
"PIPC": false,
"PM": false,
"PFCAE": false,
"PFCE": true,
"PFCE": false,
"PFC": false
},
"pinModeList": {
......@@ -5494,7 +5494,7 @@
"pinName": "SPEED2_PWM_MCU_OUT",
"pinAddress": " 3H",
"wakeupPin": {
"pinModeName": "TAUB2O13",
"pinModeName": "GPIO_OUT",
"circuitName": "SCHMITT1",
"PINV": false,
"PODC": false,
......@@ -5504,18 +5504,18 @@
"PU": false,
"PD": false,
"PBDC": false,
"PIBC": false,
"PIBC": true,
"P": false,
"PPR": false,
"PMC": true,
"PMC": false,
"PIPC": false,
"PM": false,
"PFCAE": false,
"PFCE": true,
"PFCE": false,
"PFC": false
},
"sleepPin": {
"pinModeName": "TAUB2O13",
"pinModeName": "GPIO_OUT",
"circuitName": "SCHMITT1",
"PINV": false,
"PODC": false,
......@@ -5525,14 +5525,14 @@
"PU": false,
"PD": false,
"PBDC": false,
"PIBC": false,
"PIBC": true,
"P": false,
"PPR": false,
"PMC": true,
"PMC": false,
"PIPC": false,
"PM": false,
"PFCAE": false,
"PFCE": true,
"PFCE": false,
"PFC": false
},
"pinModeList": {
......@@ -5621,7 +5621,7 @@
"pinName": "SPEED3_PWM_MCU_OUT",
"pinAddress": " 1H",
"wakeupPin": {
"pinModeName": "TAUB2O15",
"pinModeName": "GPIO_OUT",
"circuitName": "SCHMITT1",
"PINV": false,
"PODC": false,
......@@ -5631,18 +5631,18 @@
"PU": false,
"PD": false,
"PBDC": false,
"PIBC": false,
"PIBC": true,
"P": false,
"PPR": false,
"PMC": true,
"PMC": false,
"PIPC": false,
"PM": false,
"PFCAE": false,
"PFCE": true,
"PFCE": false,
"PFC": false
},
"sleepPin": {
"pinModeName": "TAUB2O15",
"pinModeName": "GPIO_OUT",
"circuitName": "SCHMITT1",
"PINV": false,
"PODC": false,
......@@ -5652,14 +5652,14 @@
"PU": false,
"PD": false,
"PBDC": false,
"PIBC": false,
"PIBC": true,
"P": false,
"PPR": false,
"PMC": true,
"PMC": false,
"PIPC": false,
"PM": false,
"PFCAE": false,
"PFCE": true,
"PFCE": false,
"PFC": false
},
"pinModeList": {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment