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.

CC2530: CC2530 PWM配置频率不成功

Part Number: CC2530
Other Parts Discussed in Thread: Z-STACK

在hal_timer.c的HalTimer1Init中,无论怎么配置,定时器的标记输出设置(CLKCONCMD 5:3 )都是32M,目前占空比可调,但是这个频率一直不行

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_TC_DIV1;
halTimerRecord[HW_TIMER_1].clock = HAL_TIMER_16MHZ;

/* 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_MODULO;
halTimerRecord[HW_TIMER_1].channel = 0;
halTimerRecord[HW_TIMER_1].channelMode = 0;
halTimerRecord[HW_TIMER_1].intEnable = FALSE;
halTimerRecord[HW_TIMER_1].callBackFunc = cBack;

halTimerSetPrescale (HW_TIMER_1, halTimerRecord[HW_TIMER_1].prescale);
halTimerSetChannelMode (HW_TIMER_1, halTimerRecord[HW_TIMER_1].channelMode);

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);

CLKCONCMD &= ~(0x18); //设置定时器所分频率
T1CC0L = 0xcc;
T1CC0H = 0x07;
/* set timer 1 operating mode */
T1CTL &= ~(HAL_TIMER1_OPMODE_BITS);
T1CTL |= HAL_TIMER1_OPMODE_MODULO;

}