исправлен баг с работой при отключении питания с датчика токов (обработка ошибок)
This commit is contained in:
parent
5e0cbb504a
commit
fc2bf9f42c
@ -10,6 +10,7 @@
|
||||
#include "pwm_init.h"
|
||||
#include "sdfm.h"
|
||||
#include "f2838x_sdfm_drivers.h"
|
||||
#include "gpio_init.h"
|
||||
|
||||
|
||||
void InitPerif(void)
|
||||
@ -22,16 +23,7 @@ void InitPerif(void)
|
||||
SdfmInitGpio();
|
||||
SdfmInitEnable();
|
||||
|
||||
EALLOW;
|
||||
GpioCtrlRegs.GPAMUX1.bit.GPIO10 = 0;
|
||||
GpioCtrlRegs.GPAMUX1.bit.GPIO11 = 0;
|
||||
GpioCtrlRegs.GPAGMUX1.bit.GPIO10 = 0;
|
||||
GpioCtrlRegs.GPAGMUX1.bit.GPIO11 = 0;
|
||||
GpioCtrlRegs.GPADIR.bit.GPIO10 = 1;
|
||||
GpioCtrlRegs.GPADIR.bit.GPIO11 = 1;
|
||||
GpioDataRegs.GPADAT.bit.GPIO10 = 0;
|
||||
GpioDataRegs.GPADAT.bit.GPIO11 = 0;
|
||||
EDIS;
|
||||
GpioInit();
|
||||
|
||||
// Clear all interrupts and initialize PIE vector table:
|
||||
// Disable CPU interrupts
|
||||
|
||||
@ -59,7 +59,7 @@ void PWMAllInit(void)
|
||||
|
||||
uint16_t i;
|
||||
|
||||
for(i = 2; i<=5; i++)
|
||||
for(i = 2; i<=6; i++)
|
||||
{
|
||||
PWMInit(i, PERIOD);
|
||||
}
|
||||
@ -78,7 +78,7 @@ void PWMInitGpio(void)
|
||||
InitEPwm3Gpio();
|
||||
InitEPwm4Gpio();
|
||||
InitEPwm5Gpio();
|
||||
// InitEPwm6Gpio();
|
||||
InitEPwm6Gpio();
|
||||
}
|
||||
|
||||
void PWMInitEnable(void)
|
||||
@ -88,7 +88,7 @@ void PWMInitEnable(void)
|
||||
CpuSysRegs.PCLKCR2.bit.EPWM3=1;
|
||||
CpuSysRegs.PCLKCR2.bit.EPWM4=1;
|
||||
CpuSysRegs.PCLKCR2.bit.EPWM5=1;
|
||||
// CpuSysRegs.PCLKCR2.bit.EPWM6=1;
|
||||
CpuSysRegs.PCLKCR2.bit.EPWM6=1;
|
||||
CpuSysRegs.PCLKCR2.bit.EPWM11=1;
|
||||
}
|
||||
|
||||
@ -133,7 +133,7 @@ void PWMInit(uint16_t Num, uint16_t Period)
|
||||
//
|
||||
// Setup TBCLK
|
||||
//
|
||||
EPwmRegs[Num]->TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN; // Count up
|
||||
EPwmRegs[Num]->TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN;
|
||||
EPwmRegs[Num]->TBCTL.bit.PHSEN = TB_DISABLE; // Disable phase loading
|
||||
EPwmRegs[Num]->TBCTL.bit.HSPCLKDIV = TB_DIV1; // Clock ratio to SYSCLKOUT
|
||||
EPwmRegs[Num]->TBCTL.bit.CLKDIV = TB_DIV1;
|
||||
@ -161,7 +161,7 @@ void PWMInit(uint16_t Num, uint16_t Period)
|
||||
// Active Low PWMs - Setup Deadband
|
||||
//
|
||||
EPwmRegs[Num]->DBCTL.bit.OUT_MODE = DB_FULL_ENABLE;
|
||||
EPwmRegs[Num]->DBCTL.bit.POLSEL = DB_ACTV_HIC;
|
||||
EPwmRegs[Num]->DBCTL.bit.POLSEL = DB_ACTV_HIC; //DB_ACTV_HI - independ
|
||||
EPwmRegs[Num]->DBCTL.bit.IN_MODE = DBA_ALL;
|
||||
EPwmRegs[Num]->DBRED.bit.DBRED = EPWM_DB;
|
||||
EPwmRegs[Num]->DBFED.bit.DBFED = EPWM_DB;
|
||||
@ -171,7 +171,7 @@ void PWMInit(uint16_t Num, uint16_t Period)
|
||||
//
|
||||
EPwmRegs[Num]->ETSEL.bit.INTSEL = ET_CTR_ZERO; // Select INT on Zero event
|
||||
EPwmRegs[Num]->ETSEL.bit.INTEN = 1; // Enable INT
|
||||
EPwmRegs[Num]->ETPS.bit.INTPRD = ET_3RD; // Generate INT on 3rd event
|
||||
EPwmRegs[Num]->ETPS.bit.INTPRD = ET_1ST; // Generate INT on 1 event
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -10,8 +10,8 @@
|
||||
#include"frm_uart.h"
|
||||
|
||||
|
||||
volatile Uint16 AutoChange = 1;
|
||||
volatile Uint16 PWM_out = PERIOD_2;
|
||||
volatile Uint16 AutoChange = 0;
|
||||
volatile Uint16 PWM_out = 0;
|
||||
|
||||
|
||||
//
|
||||
@ -40,7 +40,7 @@ __interrupt void epwm2_isr(void)
|
||||
{
|
||||
if(AutoChange) pwm_AutoChange(2);
|
||||
else EPwm2Regs.CMPA.bit.CMPA = PWM_out;
|
||||
GpioDataRegs.GPADAT.bit.GPIO10 = 1;
|
||||
// GpioDataRegs.GPADAT.bit.GPIO0 = 1;
|
||||
FMSTR_enable_set();
|
||||
//
|
||||
// Clear INT flag for this timer
|
||||
@ -51,7 +51,7 @@ __interrupt void epwm2_isr(void)
|
||||
// Acknowledge this interrupt to receive more interrupts from group 3
|
||||
//
|
||||
PieCtrlRegs.PIEACK.all = PIEACK_GROUP3;
|
||||
GpioDataRegs.GPADAT.bit.GPIO10 = 0;
|
||||
// GpioDataRegs.GPADAT.bit.GPIO0 = 0;
|
||||
}
|
||||
|
||||
//
|
||||
@ -61,7 +61,7 @@ __interrupt void epwm3_isr(void)
|
||||
{
|
||||
if(AutoChange) pwm_AutoChange(3);
|
||||
else EPwm3Regs.CMPA.bit.CMPA = PWM_out;
|
||||
GpioDataRegs.GPADAT.bit.GPIO11 = 1;
|
||||
|
||||
//
|
||||
// Clear INT flag for this timer
|
||||
//
|
||||
@ -71,7 +71,7 @@ __interrupt void epwm3_isr(void)
|
||||
// Acknowledge this interrupt to receive more interrupts from group 3
|
||||
//
|
||||
PieCtrlRegs.PIEACK.all = PIEACK_GROUP3;
|
||||
GpioDataRegs.GPADAT.bit.GPIO11 = 0;
|
||||
|
||||
}
|
||||
|
||||
__interrupt void epwm4_isr(void)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user