cancel
Showing results for 
Search instead for 
Did you mean: 

30F4: TIM16 one-pulse mode not working

mike louaillier
Associate II
Posted on July 25, 2017 at 05:08

hello can someone look at this code and figure out what's wrong with it. it's supposed to flash an LED for 10 seconds. but it don't. the LED doesn't come on. it will come on if i use a delay loop, but not with TIM16.

GPIOA->BSRR |= GPIO_BSRR_BS_4; // turn on LED wired to pin A4

TIM16->PSC = 23999; // 24k (PSC + 1)

TIM16->ARR = 21000; // about a 10 second count

TIM16->CNT = 0;

TIM16->EGR = TIM_EGR_UG; // update registers

TIM16->CR1 |= (TIM_CR1_OPM | TIM_CR1_CEN); // Enable and start timer in one pulse mode

while(TIM16->CR1 & TIM_CR1_CEN);

GPIOA->BRR |= GPIO_BRR_BR_4; // turn off LED

0 REPLIES 0