工具/软件:TI C/C++编译器
您好!
我想产生的死区时间将是周期的2%、但我没有在示波器中得到结果、 我在哪里犯错?
我也 无法反转 PWM,为什么 PDO 输出不反转?
#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*2/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_PWM1);
SysCtlPeripheralEnable (SYSCTL_Periph_PWM0);
while (!SysCtlPeripheralReady (SYSCTL_Periph_PWM0))
{
}
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOD);
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOE);
GPIOPinTypePWM (GPIO_PORTD_BASE、GPIO_PIN_0);
GPIOPinTypePWM (GPIO_Porte _BASE、GPIO_PIN_5);
GPIOPinConfigure (GPIO_PD0_M1PWM0);
GPIOPinConfigure (GPIO_PE5_M0PWM5);
PWMGenConfigure (PWM1_base、PWM_GEN_0、PWM_GEN_MODE_DOWN);
PWMGenConfigure (PWM0_BASE、PWM_GEN_2、PWM_GEN_MODE_DOWN);
PWMGenPeriodSet (PWM1_base、PWM_GEN_0、pwmperiod);
PWMGenPeriodSet (PWM0_BASE、PWM_GEN_2、pwmPeriod);
PWMDeadBandEnable (PWM1_base、PWM_GEN_0、死区、0);
PWMDeadBandEnable (PWM0_BASE、PWM_GEN_2、死区、0);
// PWMOutputInvert (PWM1_base、PWM_OUT_0、false);
PWMOutputState (PWM1_base、PWM_OUT_0_bit、true);
PWMOutputState (PWM0_BASE、PWM_OUT_5_BIT、TRUE);
PWMGenEnable (PWM1_base、PWM_GEN_0);
PWMGenEnable (PWM0_BASE、PWM_GEN_2);
while (1)
{
PWMPulseWidthSet (PWM1_base、PWM_OUT_0、cycle);
PWMPulseWidthSet (PWM0_BASE、PWM_OUT_4、cycle);
}
}