TIMERA0 使用PIN_50引脚问题
时间:10-02
整理:3721RD
点击:
大家好,我在使用TIMERA0的时候遇到了一些问题,希望能够得到解答。
我使用TIMERAO 的TimerA PIN_50用于捕获红外信号,TimerB用于捕获溢出,单独的溢出中断可以进入,之前我使用TIMERA3的PIN_06捕获是成功的 由于我需要PIN_06做其它的接口,所以就改成了TIMERA0 由于 timera0 的timera的捕获引脚是PIN_50, 可是我一直配不成功。下面是我的代码:
void
InitCapMoudle(void){
MAP_PRCMPeripheralClkEnable(PRCM_TIMERA0, PRCM_RUN_MODE_CLK);
MAP_PinTypeTimer(PIN_50, PIN_MODE_7);//CCP_00
// MAP_PinConfigSet(PIN_50,PIN_TYPE_STD_PD,PIN_STRENGTH_6MA);
MAP_PinConfigSet(PIN_50,PIN_TYPE_STD,PIN_STRENGTH_2MA);
MAP_TimerIntRegister(TIMERA0_BASE,TIMER_A,TimerIntHandler);//register cap
// MAP_TimerIntRegister(TIMERA0_BASE,TIMER_B,TimerIntHandler_TIME_OUT);//register timeout
MAP_TimerConfigure(TIMERA0_BASE, TIMER_CFG_SPLIT_PAIR | TIMER_CFG_A_CAP_TIME /*| TIMER_CFG_B_PERIODIC*/); //configer
MAP_TimerPrescaleSet(TIMERA0_BASE, TIMER_A, 0XFF);
// MAP_TimerPrescaleSet(TIMERA0_BASE, TIMER_B, 0XCF);//PrescaleSet 199 170ms * 80M = 13 600 000 (0xCF 8500)
MAP_TimerControlEvent(TIMERA0_BASE, TIMER_A, TIMER_EVENT_BOTH_EDGES);//event control
MAP_TimerLoadSet(TIMERA0_BASE, TIMER_A, 0XFFFE);//loadSet
// MAP_TimerLoadSet(TIMERA0_BASE, TIMER_B, 0x8500);//170
MAP_TimerIntEnable(TIMERA0_BASE,TIMER_CAPA_EVENT /*| TIMER_TIMB_TIMEOUT*/);//cap event enable
MAP_TimerEnable(TIMERA0_BASE,TIMER_A);
Report("init succ \r\n\n");
}
//中断函数
static void TimerIntHandler()
{
Report("The the\r\n\n");
MAP_TimerIntClear(TIMERA0_BASE,TIMER_CAPA_EVENT);
g_ulSamples[g_ulFreq++] = MAP_TimerValueGet(TIMERA0_BASE,TIMER_A);
if(timeStatus == 1){
MAP_TimerEnable(TIMERA0_BASE,TIMER_B);
timeStatus = 0;
}
// TimerValueSet(TIMERA3_BASE, TIMER_B,65534);
TimerValueSet(TIMERA0_BASE, TIMER_B,0x8500);
// Report("time_B SET:%ld\r\n\n",MAP_TimerValueGet(TIMERA3_BASE,TIMER_B));
if(g_ulFreq >= RecvMax -1){
g_ulFreq = 0;
Report("The array is full\r\n\n");
}
}
PIN_50也是普通的IO,和PIN_06没差别,你如果用TIMERA3配上PIN_50可以用吗?
