Hello! I use TM4C123G Evaluation Kit and I want to make a PWM to PF2, but I don't see where I go wrong :(
I don't see the signal on PF2.
the code:
volatile unsigned int PWMora;
volatile unsigned int freki_1;
#define PWM_FREQUENCY 100
//*****************************************************************************
//
// PWM1_GEN_3
//
//*****************************************************************************
void
PWM1gen3IntHandler(void)
{
PWMGenIntClear( PWM1_BASE, PWM_GEN_3, PWM_INT_CNT_ZERO);
unsigned int duty;
duty = PWMPulseWidthGet(PWM1_BASE, PWM_OUT_6)+1;
if(duty==freki_1)duty=freki_1/2;
PWMPulseWidthSet(PWM1_BASE, PWM_OUT_6, duty);
}
int
main(void)
{
//Sysclock
SysCtlClockSet(SYSCTL_SYSDIV_5 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHZ);
//***********************************************
//
//PWM
//
//***********************************************
//PWMclock
SysCtlPWMClockSet(SYSCTL_PWMDIV_64);
//GPIO
SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM1);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
GPIOPinTypePWM(GPIO_PORTF_BASE, GPIO_PIN_2);
GPIOPinConfigure(GPIO_PF2_M1PWM6);
PWMora = ROM_SysCtlClockGet() / 64;
freki_1 = (PWMora / PWM_FREQUENCY);
//Conf. PWM gen
PWMGenConfigure(PWM1_BASE, PWM_GEN_3, PWM_GEN_MODE_DOWN);
PWMGenPeriodSet(PWM1_BASE, PWM_GEN_3, freki_1);
PWMPulseWidthSet(PWM1_BASE, PWM_OUT_6, freki_1);
PWMOutputState(PWM1_BASE, PWM_OUT_6_BIT, true);
PWMGenEnable( PWM1_BASE, PWM_GEN_3);
//Interrupt enable
IntMasterEnable();
PWMIntEnable( PWM1_BASE, PWM_INT_GEN_3);
IntEnable(INT_PWM1_3);
PWMGenIntTrigEnable(PWM1_BASE, PWM_GEN_3, PWM_INT_CNT_ZERO);
// Loop forever
while(1)
{
}
}
parts from the startup:
...
extern void PWM1gen3IntHandler(void);
...
IntDefaultHandler, // GPIO Port Q7
IntDefaultHandler, // GPIO Port R
IntDefaultHandler, // GPIO Port S
IntDefaultHandler, // PWM 1 Generator 0
IntDefaultHandler, // PWM 1 Generator 1
IntDefaultHandler, // PWM 1 Generator 2
PWM1gen3IntHandler, // PWM 1 Generator 3
IntDefaultHandler // PWM 1 Fault
...