Other Parts Discussed in Thread: CC2530
大家好、
正如我之前在 PWM 定义第1、2和3部分中所述、我已经成功配置了调光器件。
我加入了用于执行 LED 光驱动器的电子元件、但在测试期间、我观察到光 LED 灯闪烁75%。 我怀疑发生这种情况的原因是计时器设置、特别是频率/周期(halTimer1SetPeriod (4292);// 233Hz)定义为计时器1。
有人有这样的经验来建议如何解决这个问题?
有人有一些文章可以帮助我更好地理解这一点?
以帮助我更好地理解这一点吗?
下面您可以在 timer.c 文件中看到计时器1设置:
空 HalTimer1Init (halTimerCBack_t cBack)
{
T1CCTL0 = 0;//确保中断被禁用*/
T1CCTL1 = 0;//确保中断被禁用*/
T1CCTL2 = 0;//确保中断被禁用*/
T1CCTL3 = 0;//确保中断被禁用*/
T1CCTL4 = 0;//确保中断被禁用*/
/*设置 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;
/*设置 Timer1通道结构*/
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);
/*设置定时器1的运行模式*/
T1CTL &=~(HAL_Timer1_OPMODE_Bits);
T1CTL |= HAL_Timer1_OPMODE_UPDOWN;
BR
Alex

