pwm out
This commit is contained in:
parent
ed4d083358
commit
09cce163fc
1 changed files with 25 additions and 0 deletions
25
main.c
25
main.c
|
@ -16,6 +16,12 @@
|
||||||
#include "Crystalfontz128x128_ST7735.h"
|
#include "Crystalfontz128x128_ST7735.h"
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "buttons.h"
|
#include "buttons.h"
|
||||||
|
#include <math.h>
|
||||||
|
#include "inc/hw_memmap.h"
|
||||||
|
#include "driverlib/gpio.h"
|
||||||
|
#include "driverlib/pwm.h"
|
||||||
|
#include "driverlib/pin_map.h"
|
||||||
|
#define PWM_FREQUENCY 20000 // PWM frequency = 20 kHz
|
||||||
|
|
||||||
uint32_t gSystemClock; // [Hz] system clock frequency
|
uint32_t gSystemClock; // [Hz] system clock frequency
|
||||||
volatile uint32_t gTime = 0; // time in hundredths of a second
|
volatile uint32_t gTime = 0; // time in hundredths of a second
|
||||||
|
@ -24,6 +30,25 @@ int main(void)
|
||||||
{
|
{
|
||||||
IntMasterDisable();
|
IntMasterDisable();
|
||||||
|
|
||||||
|
// configure M0PWM2, at GPIO PF2, BoosterPack 1 header C1 pin 2
|
||||||
|
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
|
||||||
|
GPIOPinTypePWM(GPIO_PORTF_BASE, GPIO_PIN_2);
|
||||||
|
GPIOPinConfigure(GPIO_PF2_M0PWM2);
|
||||||
|
GPIOPadConfigSet(GPIO_PORTF_BASE, GPIO_PIN_2,
|
||||||
|
GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD);
|
||||||
|
// configure the PWM0 peripheral, gen 1, outputs 2 and 3
|
||||||
|
SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM0);
|
||||||
|
// use system clock without division
|
||||||
|
PWMClockSet(PWM0_BASE, PWM_SYSCLK_DIV_1);
|
||||||
|
PWMGenConfigure(PWM0_BASE, PWM_GEN_1,
|
||||||
|
PWM_GEN_MODE_DOWN | PWM_GEN_MODE_NO_SYNC);
|
||||||
|
PWMGenPeriodSet(PWM0_BASE, PWM_GEN_1, roundf((float)gSystemClock/PWM_FREQUENCY));
|
||||||
|
PWMPulseWidthSet(PWM0_BASE, PWM_OUT_2,
|
||||||
|
roundf((float)gSystemClock/PWM_FREQUENCY*0.4f));
|
||||||
|
PWMOutputState(PWM0_BASE, PWM_OUT_2_BIT, true);
|
||||||
|
PWMGenEnable(PWM0_BASE, PWM_GEN_1);
|
||||||
|
|
||||||
|
|
||||||
// Enable the Floating Point Unit, and permit ISRs to use it
|
// Enable the Floating Point Unit, and permit ISRs to use it
|
||||||
FPUEnable();
|
FPUEnable();
|
||||||
FPULazyStackingEnable();
|
FPULazyStackingEnable();
|
||||||
|
|
Loading…
Reference in a new issue