Измерение тока тормоза

This commit is contained in:
seklyuts 2024-07-09 11:35:12 +03:00
parent df31f6a61d
commit 05542beb04
4 changed files with 33 additions and 11 deletions

View File

@ -11,7 +11,7 @@
#include "gpio_init.h"
#include "sdfm.h"
#include "vector.h"
#include"frm_uart.h"
#include "frm_uart.h"
//
// Defines
//
@ -110,13 +110,6 @@ volatile float CurrentFactorMotor = FACTOR_CURRENT_MOTOR*32767.0;
int16_t SdfmGetChannel(int16_t N)
{
return sdfmAdc[N];
}
void SdfmGpioInit(void)
{
@ -369,7 +362,7 @@ void sdfm_check_all_current_measurements_was_done(void)
{
if((sdfmIndex & SDFM_ALL_CURRENTS) == SDFM_ALL_CURRENTS)
{
sdfmIndex = 0;
sdfmIndex &= ~SDFM_ALL_CURRENTS;
if(AllInitDone)
{
vectorControl(sdfmAdc[SDFM_IA],sdfmAdc[SDFM_IB],sdfmAdc[SDFM_IC],sdfmAdc[SDFM_U_DC]);
@ -377,6 +370,18 @@ void sdfm_check_all_current_measurements_was_done(void)
}
}
void sdfm_check_brake_measurements_was_done(void)
{
if((sdfmIndex & SDFM_BIT_BRAKE) == SDFM_BIT_BRAKE)
{
sdfmIndex &= ~SDFM_BIT_BRAKE;
if(AllInitDone)
{
}
}
}
__interrupt void Sdfm1_ISR(void)
{
@ -409,6 +414,7 @@ uint32_t IntFlags;
Sdfm_clearFlagRegister(SDFM2,IntFlags);
sdfm_check_all_current_measurements_was_done();
sdfm_check_brake_measurements_was_done();
PieCtrlRegs.PIEACK.all = PIEACK_GROUP5;
}
@ -430,6 +436,19 @@ void sdfm_start_conversion_current(void)
EDIS;
}
void sdfm_start_conversion_brake(void)
{
sdfmIndex = 0;
EALLOW;
Sdfm1Regs.SDIFLGCLR.all = 0xFFFFFFFF;
Sdfm2Regs.SDIFLGCLR.all = 0xFFFFFFFF;
SDCPARM_Reg_arr[SDFM_BRAKE]->bit.MFIE = 1;
SDDFPARM_Reg_arr[SDFM_BRAKE]->bit.AE = 1;
EDIS;
}
int16_t sdfm_get(int16_t N)
{
return sdfmAdc[N];

View File

@ -24,6 +24,8 @@
#define SDFM_BIT_IB (1<<SDFM_IB)
#define SDFM_BIT_IC (1<<SDFM_IC)
#define SDFM_BIT_U (1<<SDFM_U_DC)
#define SDFM_BIT_BRAKE (1<<SDFM_BRAKE)
#define SDFM_ALL_CURRENTS (SDFM_BIT_IA | SDFM_BIT_IB | SDFM_BIT_IC | SDFM_BIT_U)
@ -50,6 +52,7 @@ void SdfmInit(void);
void sdfm_start_conversion_current(void);
int16_t sdfm_get(int16_t N);
void SdfmTypeInit(void);
void sdfm_start_conversion_brake(void);

View File

@ -86,7 +86,6 @@ void InitPerif(void)
temperatureInit();
#endif
faultInit();
rele_initRele();
//
@ -96,7 +95,7 @@ void InitPerif(void)
ERTM; // Enable Global realtime interrupt DBGM
I2CMasterInit(I2C_OWN_ADDRESS,I2C_FAULT_SLAVE_ADDRESS);
faultInit();

View File

@ -151,6 +151,7 @@ void vectorControl(int16_t CurrentA, int16_t CurrentB, int16_t CurrentC, int16_t
BissStartSet();
FMSTREnableSet();
AdcStartSet();
sdfm_start_conversion_brake();
}