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可以用吗?