SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER3);//PM2
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOM);
GPIOPinConfigure(GPIO_PM2_T3CCP0); GPIOPinTypeTimer(GPIO_PORTM_BASE, GPIO_PIN_2); GPIOPadConfigSet(GPIO_PORTM_BASE, GPIO_PIN_2, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU); // 为管脚配置弱上拉模式 TimerConfigure(TIMER3_BASE, TIMER_CFG_SPLIT_PAIR | TIMER_CFG_A_CAP_COUNT_UP);//边沿加计数模式 TimerControlEvent(TIMER3_BASE, TIMER_A, TIMER_EVENT_NEG_EDGE); TimerMatchSet(TIMER3_BASE, TIMER_A, 0x1FFF); TimerEnable(TIMER3_BASE, TIMER_A);
/****************************************************/ GPIOPinConfigure(GPIO_PM3_T3CCP1); //PM3
GPIOPinTypeTimer(GPIO_PORTM_BASE, GPIO_PIN_3); GPIOPadConfigSet(GPIO_PORTM_BASE, GPIO_PIN_3, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU); // 为管脚配置弱上拉模式 TimerConfigure(TIMER3_BASE, TIMER_CFG_SPLIT_PAIR | TIMER_CFG_B_CAP_COUNT_UP);//边沿加计数模式 TimerControlEvent(TIMER3_BASE, TIMER_B, TIMER_EVENT_NEG_EDGE); TimerMatchSet(TIMER3_BASE, TIMER_B, 0x1FFF); TimerEnable(TIMER3_BASE, TIMER_B);
/****************************************************/
这样初始化只能用CCP1,也就是PM3,此时TimerValueGet(TIMER3_BASE, TIMER_A);的值都是0xFFFF。
如果把PM3那段不要初始化CCP0就正常了。
是不是TIMER 的A B模块不能同时使用?
xyz549040622:
TIMER 的A B模块是可以同时使用的。我怀疑是你初始化的问题,你试试把PM3的初始化放在前面,PM2的初始化放在后面,看看是不是只有在后面的初始化才会起作用的呢。
user4619179:
回复 xyz549040622:
是这样子的,只有一个起作用。