Hello Team,
I'm using TM4C129ENCPDT controller. Configured the T0CCP0,T0CCP1, and T1CCP1 for frequency measurements.
I have configured the Timer0 for Split operation and the TimerA and B for capturing the pulses. I'm getting the right values for T0CCP0 and T1CCP1 but, there is no data available for T0CCP1.
Below is the code:
//Initalisation
void Init_Freq_Measure(void)
{
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOL);
while(!SysCtlPeripheralReady(SYSCTL_PERIPH_GPIOL));
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);
while(!SysCtlPeripheralReady(SYSCTL_PERIPH_GPIOD));
SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER0);
while(!SysCtlPeripheralReady(SYSCTL_PERIPH_TIMER0));
SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER1);
while(!SysCtlPeripheralReady(SYSCTL_PERIPH_TIMER1));
TimerLoadSet(TIMER0_BASE, TIMER_BOTH, 0xFFFF);
//TimerLoadSet(TIMER0_BASE, TIMER_B, 0xFFFF);
TimerLoadSet(TIMER1_BASE, TIMER_B, 0xFFFF);
GPIOPinTypeTimer(GPIO_PORTL_BASE,GPIO_PIN_7);
GPIOPinConfigure(GPIO_PL7_T1CCP1);
GPIOPinTypeTimer(GPIO_PORTD_BASE,GPIO_PIN_0);
GPIOPinConfigure(GPIO_PD0_T0CCP0);
GPIOPinTypeTimer(GPIO_PORTD_BASE,GPIO_PIN_1);
GPIOPinConfigure(GPIO_PD1_T0CCP1);
TimerConfigure(TIMER0_BASE, TIMER_CFG_SPLIT_PAIR|TIMER_CFG_B_CAP_COUNT_UP|TIMER_CFG_A_CAP_COUNT_UP);
TimerControlEvent(TIMER0_BASE, TIMER_BOTH, TIMER_EVENT_POS_EDGE);
TimerConfigure(TIMER1_BASE, TIMER_CFG_SPLIT_PAIR|TIMER_CFG_B_CAP_COUNT_UP);
TimerControlEvent(TIMER1_BASE, TIMER_B, TIMER_EVENT_POS_EDGE);
TimerEnable(TIMER0_BASE, TIMER_BOTH);
TimerEnable(TIMER1_BASE, TIMER_B);
}
//Timer 2 Interrupt for 1 sec.
void Timer2IntHandler (void)
{
TimerIntClear(TIMER2_BASE, TIMER_TIMA_TIMEOUT);
start_r = end_r;
start_y = end_y;
start_b = end_b;
end_r = TimerValueGet(TIMER0_BASE, TIMER_A);
end_y = TimerValueGet(TIMER0_BASE, TIMER_B);
end_b = TimerValueGet(TIMER1_BASE, TIMER_B);
freq_r = CalculateFreq(start_r,end_r);
freq_y = CalculateFreq(start_y,end_y);
freq_b = CalculateFreq(start_b,end_b);
}
Thank you in advance.
Regards
Shijin