Other Parts Discussed in Thread: CC2530
Hi Guys,
I already had success to configuring my dimmer device, as I posted before in PWM Definitions Part 1, 2 and 3.
I included electronics components to do the LED Light Driver, but during the test I observed that the light LED lamp flicking bellow 75%. I suspect that it occurring because the Timer settings, specially Freq/Period (halTimer1SetPeriod (4292); // 233Hz) defined to Timer 1.
Somebody had an experience like that to advise how to fix it?
Someone has some article to help me understand this better?
to help me understand this better?
Bellow You can see timer 1 settings in timer.c file:
void HalTimer1Init (halTimerCBack_t cBack)
{
T1CCTL0 = 0; /* Make sure interrupts are disabled */
T1CCTL1 = 0; /* Make sure interrupts are disabled */
T1CCTL2 = 0; /* Make sure interrupts are disabled */
T1CCTL3 = 0; /* Make sure interrupts are disabled */
T1CCTL4 = 0; /* Make sure interrupts are disabled */
/* Setup prescale & clock for timer0 */
halTimerRecord[HW_TIMER_1].prescale = HAL_TIMER1_16_PRESCALE;
halTimerRecord[HW_TIMER_1].clock = HAL_TIMER_32MHZ;
halTimerRecord[HW_TIMER_1].prescaleVal = HAL_TIMER1_16_PRESCALE_VAL;
/* Setup Timer1 Channel structure */
halTimer1Channel[0].TxCCTL = TCHN_T1CCTL;
halTimer1Channel[0].TxCCL = TCHN_T1CCL;
halTimer1Channel[0].TxCCH = TCHN_T1CCH;
halTimerRecord[HW_TIMER_1].configured = TRUE;
halTimerRecord[HW_TIMER_1].opMode = HAL_TIMER1_OPMODE_UPDOWN;
halTimerRecord[HW_TIMER_1].channel = 0;
halTimerRecord[HW_TIMER_1].channelMode = 0;
halTimerRecord[HW_TIMER_1].intEnable = FALSE;
halTimerRecord[HW_TIMER_1].callBackFunc = cBack;
Timer1MaxCount = halTimer1SetPeriod (4292); // 233Hz
halTimerSetPrescale (HW_TIMER_1, halTimerRecord[HW_TIMER_1].prescale);
halTimerSetChannelMode (HW_TIMER_1, halTimerRecord[HW_TIMER_1].channelMode);
halTimer1SetChannelCCTL(HAL_T1_CH0, 0, 1, HAL_TIMER1_CH0_CMP_MODE_SET_ON_COMP, 1, HAL_TIMER1_CH_CAP_MODE_NO);
halTimer1SetChannelCCTL(HAL_T1_CH1, 0, 1, HAL_TIMER1_CHn_CMP_MODE_CLR_ON_COMP_SET_ON_0, 1, HAL_TIMER1_CH_CAP_MODE_NO);
halTimer1SetChannelCCTL(HAL_T1_CH2, 0, 1, HAL_TIMER1_CHn_CMP_MODE_CLR_ON_COMP_SET_ON_0, 1, HAL_TIMER1_CH_CAP_MODE_NO);
halTimer1SetChannelCCTL(HAL_T1_CH3, 0, 1, HAL_TIMER1_CHn_CMP_MODE_CLR_ON_COMP_SET_ON_0, 1, HAL_TIMER1_CH_CAP_MODE_NO);
halTimer1SetChannelCCTL(HAL_T1_CH4, 0, 1, HAL_TIMER1_CHn_CMP_MODE_CLR_ON_COMP_SET_ON_0, 1, HAL_TIMER1_CH_CAP_MODE_NO);
halTimer1SetChannelDuty (HAL_T1_CH1, 0);
halTimer1SetChannelDuty (HAL_T1_CH2, 0);
halTimer1SetChannelDuty (HAL_T1_CH3, 0);
halTimer1SetChannelDuty (HAL_T1_CH4, 0);
/* set timer 1 operating mode */
T1CTL &= ~(HAL_TIMER1_OPMODE_BITS);
T1CTL |= HAL_TIMER1_OPMODE_UPDOWN;
BR
Alex

