Hi all
i want to set the PWM output to the channel 0 at P12,i using the hal_timer.c API function , and coding as like below:
PERCFG |= BV(6); // Select Timer 1 Alternative 2 location P1SEL |= BV(2); // Set P1_2 as peripheral P_HalTimer1Init(0); P_halTimer1SetChannelDuty(HAL_T1_CH0,50);
P_HalTimer1Init(0); function is follow the hal_timer.c ,And it only define the channel 0 In timer 1
void P_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);
// CHANNEL O, RFIRQ=0, IM=0, TOGGLE MODE
halTimer1SetChannelCCTL(HAL_T1_CH0, 0, 0, HAL_TIMER1_CH0_CMP_MODE_TOG_ON_COMP, 1, HAL_TIMER1_CH_CAP_MODE_NO);
//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);
//P_halTimer1SetChannelDuty (HAL_T1_CH1, 0);
//P_halTimer1SetChannelDuty (HAL_T1_CH2, 0);
//P_halTimer1SetChannelDuty (HAL_T1_CH3, 0);
//P_halTimer1SetChannelDuty (HAL_T1_CH4, 0);
/* set timer 1 operating mode */
T1CTL &= ~(HAL_TIMER1_OPMODE_BITS);
T1CTL |= HAL_TIMER1_OPMODE_UPDOWN;
}
But there is nothing out in the P12 ?
and how could i stop and start it if it work ?
BR!
