Prosty kod włączajacy sygnał PWM na piny PC4 i PC5. Należy w opcjach projektu dodać "predefined symbols" "PART_LM4F230H5QR", gdyż bez tego biblioteka nie zwróci odpowiednich map dla naszego procesora. W zależności od płytki może być potrzebny inny zapis, więcej na forum TI link
#include "utils/ustdlib.h"
#include "inc/hw_types.h"
#include "inc/hw_memmap.h"
#include "driverlib/sysctl.h"
#include "driverlib/pin_map.h"
#include "driverlib/debug.h"
#include "driverlib/hibernate.h"
#include "driverlib/gpio.h"
#include "driverlib/systick.h"
#include "driverlib/timer.h"
#include "driverlib/pwm.h"
int main(void)
{
SysCtlClockSet(SYSCTL_SYSDIV_5|SYSCTL_USE_PLL|SYSCTL_OSC_INT); // 40 MHz int
SysCtlPWMClockSet(SYSCTL_PWMDIV_64); //PWM - pre-divided System Clock 625 kHz
SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM0); // PWM0
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC); // PWM PC4
// Enable pin PC5 for PWM0 M0PWM7
GPIOPinConfigure(GPIO_PC4_M0PWM6);
GPIOPinTypePWM(GPIO_PORTC_BASE, GPIO_PIN_5);
// Enable pin PC4 for PWM0 M0PWM6
GPIOPinConfigure(GPIO_PC5_M0PWM7);
GPIOPinTypePWM(GPIO_PORTC_BASE, GPIO_PIN_4);
PWMGenConfigure(PWM0_BASE, PWM_GEN_3, PWM_GEN_MODE_DOWN| PWM_GEN_MODE_NO_SYNC); // PWM Count-Down Mode
PWMGenPeriodSet(PWM0_BASE, PWM_GEN_3, 6249); // 100 Hz
PWMPulseWidthSet(PWM0_BASE, PWM_OUT_6, 3124); // PC4 50%
PWMPulseWidthSet(PWM0_BASE, PWM_OUT_7, 1562); // PC5 25%
PWMGenEnable(PWM0_BASE, PWM_GEN_3);
PWMOutputState(PWM0_BASE, (PWM_OUT_6_BIT | PWM_OUT_7_BIT), true);
while(1)
{
}
}
Sygnał generowany na pinach PC4 i PC5.
Funkcja PWMOutputInvert(PWM0_BASE, PWM_OUT_7_BIT, true)
Invert
Funkcja PWMGenConfigure(PWM0_BASE, PWM_GEN_3, PWM_GEN_MODE_UP_DOWN | PWM_GEN_MODE_NO_SYNC)
up-down timer
Funkcja PWMDeadBandEnable(PWM0_BASE, PWM_GEN_3,300,100);
Dead-Band Generator



