定时器0B的初始化代码如下:
SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER0); // 使能Timer模块
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB); // 使能CCP1所在的GPIO端口
GPIOPinTypeTimer(GPIO_PORTB_BASE, GPIO_PIN_6);
// 控制Timer0B捕获
TimerConfigure(TIMER0_BASE, (TIMER_CFG_B_CAP_TIME));
// Timer0B捕捉双边沿
TimerControlEvent(TIMER0_BASE, TIMER_B, TIMER_EVENT_BOTH_EDGES);
// 装载定时器初始值
TimerLoadSet(TIMER0_BASE, TIMER_B, 0xFFFF);
// 使能Timer0事件捕获中断
TimerIntEnable(TIMER0_BASE, TIMER_CAPB_EVENT);
// 使能Timer中断
IntEnable(INT_TIMER0B);
// 使能处理器中断
IntMasterEnable();
// 使能Timer0B
TimerEnable(TIMER0_BASE, TIMER_B);
不知道什么地方没有配置好,帮帮忙,给点意见!
回复 沙发 lbk32 的帖子
对了 我想起来了 定时器捕捉只能用16位的定时器
所以试一下 TimerConfigure(TIMER0_BASE,TIMER_CFG_16_BIT_PAIR | TIMER_CFG_B_CAP_TIME);
或者
TimerConfigure(TIMER0_BASE,TIMER_CFG_16_BIT_PAIR | TIMER_CFG_B_PERIODIC |TIMER_CFG_B_CAP_TIME);
木有人吗?我的定时器配置所用的API是最新的driverlib-3m,是不是和之前的有很大的区别?不喜欢类似的API函数啊,感觉不靠谱啊!
回复 楼主 lbk32 的帖子
你是用16位还是32位的timer? 输入管脚有没有波形? 还有能不能进中断函数?
回复 4楼 tekkon 的帖子
谢谢楼上哥们的支持,我的问题得到解决了。定时器捕获不到是因为我的配置代码里面缺少“GPIOPinConfigure(GPIO_PB6_CCP1)”这么一句配置语句。引以为戒啊,这样太浪费时间了,而且该语句在周立功所翻译的旧版本的驱动库里是没有的,我原先就是看那个手册的,得与时俱进啊。不管怎么样,谢谢楼上的支持,谢谢!