FlexPWM setting for single PWM

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

FlexPWM setting for single PWM

970件の閲覧回数
waqasbutt121
Contributor I

I am using the flexPWM module of MKV561M0VLL24. I am configuring my controller with the following setting but it is not working

Note: The code is for generating a single PWM on PWM0_A2. 

PWM0->OUTEN = PWM_OUTEN_PWMA_EN((1 << 2));
PWM0->SM[2].CTRL = PWM_CTRL_LDFQ(0) | 
                                                PWM_CTRL_HALF(0) | 
                                                PWM_CTRL_FULL(1) | 
                                                PWM_CTRL_PRSC(5) | 
                                                PWM_CTRL_LDMOD(1); 
PWM0->SM[2].CTRL2 = PWM_CTRL2_INDEP_MASK |
                                       PWM_CTRL2_PWM23_INIT(0) |
                                       PWM_CTRL2_INIT_SEL(0) |
                                       PWM_CTRL2_FRCEN(0) |
                                       PWM_CTRL2_FORCE(0) |
                                       PWM_CTRL2_FORCE_SEL(0) |
                                       PWM_CTRL2_CLK_SEL(0);
PWM0->SM[2].INIT = 0;
PWM0->SM[2].VAL1 = 1999;
PWM0->SM[2].VAL0 = 999;
PWM0->SM[2].VAL2 = 0;
PWM0->SM[2].VAL3 = 599;

PWM0->MCTRL = PWM_MCTRL_LDOK((1 << 2));

PWM0->MCTRL |= PWM_MCTRL_RUN((1 << 2));

The CNT register of this channel appears to be going beyond the VAL1 limit (which shouldn't happen if values are correctly loaded) and no PWM is generated. Kindly help

ラベル(1)
タグ(3)
0 件の賞賛
返信
1 返信

763件の閲覧回数
waqasbutt121
Contributor I

Problem Solved:

Fault Status was not clear. Clearing the fault status resolved the problem

PWM0->FSTS = PWM_FSTS_FFLAG(0xF);

Moreover there is a strange behaviour, If i write the LDOK field in MCTRL without reading the MCCTRL register, it doesn't update

0 件の賞賛
返信