PWM实验程序解析
#include <stdint.h>
#include <stdbool.h>
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "driverlib/sysctl.h"
#include "driverlib/rom.h"
#include "driverlib/gpio.h"
#include "driverlib/pwm.h"
#include "driverlib/fpu.h"
#include "driverlib/pin_map.h"
int main (void)
{
FPUEnable();
FPULazyStackingEnable();
SysCtlClockSet(SYSCTL_SYSDIV_4 |SYSCTL_USE_PLL
|SYSCTL_OSC_MAIN |SYSCTL_XTAL_16MHZ);
ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM);
ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOH);
ROM_GPIOPinTypePWM(GPIO_PORTH_BASE, GPIO_PIN_0);
ROM_GPIOPinTypePWM(GPIO_PORTH_BASE, GPIO_PIN_1);
ROM_SysCtlPWMClockSet(SYSCTL_PWMDIV_1);
ROM_PWMGenConfigure(PWM_BASE,
PWM_GEN_0,PWM_GEN_MODE_UP_DOWN
| PWM_GEN_MODE_NO_SYNC);
ROM_PWMGenPeriodSet(PWM_BASE, PWM_GEN_0, 6000);
ROM_PWMPulseWidthSet(PWM_BASE, PWM_OUT_0, 4200);
ROM_PWMPulseWidthSet(PWM_BASE, PWM_OUT_1, 1800);
ROM_PWMOutputState(PWM_BASE, (PWM_OUT_0_BIT |
PWM_OUT_1_BIT), true);
ROM_PWMGenEnable(PWM0_BASE, PWM_GEN_0);
while(1);
{
}
}