工具/软件:TI C/C++编译器
我如何产生将占 PWM 周期20%的死区时间?
我在哪里犯错?
#include
#include
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "driverlib/sysctl.h"
#include "driverlib/gpio.h"
#include "driverlib/debug.h"
#include "driverlib/pwm.h"
#include "driverlib/pin_map.h"
#include "inc/hw_gpio.h"
#include "driverlib/rom.h"
int main (空)
{
uint32_t cycle;
uint32_t pwmfrequency;
uint32_t 死区;
uint32_t pwmperiod;
pwmperiod=50;
pwmfrequency = SysCtlPWMClockGet ()/pwmPeriod;
死区=pwmperiod*20/100;
cycle=pwmperiod*50/100;
SysCtlClockSet (SYSCTL_SYSDIV_1_SYSCTL_USE_PLL|SYSCTL_OSC_MAIN|SYSCTL_XTAL_16MHz);
SysCtlPWMClockSet (SYSCTL_SYSDIV_8);
SysCtlPeripheralEnable (SYSCTL_Periph_PWM0);
SysCtlPeripheralEnable (SYSCTL_Periph_PWM1);
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOE);
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOD);
GPIOPinTypePWM (GPIO_Porte _BASE、GPIO_PIN_4);
GPIOPinTypePWM (GPIO_Porte _BASE、GPIO_PIN_5);
GPIOPinTypePWM (GPIO_PORTD_BASE、GPIO_PIN_0);
GPIOPinTypePWM (GPIO_PORTD_base、GPIO_PIN_1);
GPIOPinConfigure (GPIO_PE4_M0PWM4);
GPIOPinConfigure (GPIO_PE5_M0PWM5);
GPIOPinConfigure (GPIO_PD0_M1PWM0);
GPIOPinConfigure (GPIO_PD1_M1PWM1);
PWMGenConfigure (PWM0_BASE、PWM_GEN_2、PWM_GEN_MODE_UP_DOWN|PWM_GEN_MODE_NO_SYNC);
PWMGenConfigure (PWM1_base、PWM_GEN_0、PWM_GEN_MODE_UP_DOWN|PWM_GEN_MODE_NO_SYNC);
PWMGenPeriodSet (PWM0_BASE、PWM_GEN_2、pwmPeriod);
PWMGenPeriodSet (PWM1_base、PWM_GEN_0、pwmperiod);
PWMDeadBandEnable (PWM0_BASE、PWM_GEN_2、死区、0);// pd1
//PWMDeadBandEnable (PWM1_base、PWM_GEN_0、死区、0);// PE4
PWMOutputState (PWM0_BASE、PWM_OUT_4_BIT、TRUE);
PWMOutputState (PWM0_BASE、PWM_OUT_5_BIT、false);
PWMOutputState (PWM1_base、PWM_OUT_0_bit、false);
PWMOutputState (PWM1_base、PWM_OUT_1_BIT、true);
PWMGenEnable (PWM0_BASE、PWM_GEN_2);
PWMGenEnable (PWM1_base、PWM_GEN_0);
while (1)
{
PWMOutputInvert (PWM0_BASE、PWM_OUT_4_BIT、TRUE);
PWMPulseWidthSet (PWM0_BASE、PWM_OUT_4、cycle);
// PWMPulseWidthSet (PWM0_BASE、PWM_OUT_5、cycle);
//PWMPulseWidthSet (PWM1_base、PWM_OUT_0、cycle);
PWMPulseWidthSet (PWM1_base、PWM_OUT_1、cycle);
}
}
