This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TM4C123GH6PM: How to configure universal timer for 48bit PWM?

Part Number: TM4C123GH6PM

Hi all:

I use tm4c130hpm because there is no PWM module, so I use universal timer to generate PWM. The data manual says that it can be configured as 24/48BIT PWM module.  

“The GPTM supports a simple PWM generation mode. In PWM mode, the timer is configured as a 24-bit or 48-bit down-counter with a start value (and thus period) defined by the GPTMTnILR and GPTMTnPR registers.”

But the official reference code is the 16bit timer PWM.  I wrote my own application code with reference to the official code, but unfortunately it was not successfully configured as 24/48bit timer PWM.

The code is as follows. Is there any way to solve this problem? Thanks very much.

uint32_t clk;
    
ROM_GPIOPinTypeGPIOInput(GPIO_PORTB_BASE, GPIO_PIN_4); 

ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER1);

ROM_GPIOPinConfigure(GPIO_PB4_T1CCP0);

ROM_GPIOPinTypeTimer(GPIO_PORTB_BASE, GPIO_PIN_4);

TimerConfigure(TIMER1_BASE, TIMER_CFG_A_PWM);

TimerLoadSet(TIMER1_BASE, TIMER_A, 16000000);
    
clk = TimerLoadGet(TIMER1_BASE, TIMER_A);

TimerMatchSet(TIMER1_BASE, TIMER_A, clk/2);

TimerEnable(TIMER1_BASE, TIMER_A);