完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
void Init_timer_Capture(void)
[ SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB); //使能CCP所在GPIO SysCtlDelay(2); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF); //使能CCP所在GPIO SysCtlDelay(2); GPIOPinTypeTimer(GPIO_PORTB_BASE,GPIO_PIN_6|GPIO_PIN_7); //配置CCP引脚为边沿事件输入,供Timer模块使用 GPIOPinTypeTimer(GPIO_PORTF_BASE,GPIO_PIN_0|GPIO_PIN_1); SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER0); //使能32位定时器0,这一步是使能外设 SysCtlDelay(2); //配置系统外设5个周期内不能访问寄存器,这里延时6个周期 TimerConfigure(TIMER0_BASE,TIMER_CFG_A_CAP_COUNT|TIMER_CFG_B_CAP_COUNT); // GPIOPinConfigure(GPIO_PB6_T0CCP0|GPIO_PB7_T0CCP1|GPIO_PF1_T0CCP1|GPIO_PF0_T0CCP0); GPIODirModeSet(GPIO_PORTB_BASE,GPIO_PIN_6|GPIO_PIN_7,GPIO_DIR_MODE_IN);//配置引脚PB6为捕获引脚 GPIODirModeSet(GPIO_PORTF_BASE,GPIO_PIN_0|GPIO_PIN_1,GPIO_DIR_MODE_IN); GPIOPinConfigure(GPIO_PB6_T0CCP0); //配置引脚PB6为捕获引脚 GPIOPinConfigure(GPIO_PB7_T0CCP1); //配置引脚PB6为捕获引脚 GPIOPinConfigure(GPIO_PF0_T0CCP0); //配置引脚PF0为捕获引脚 GPIOPinConfigure(GPIO_PF1_T0CCP1); //配置引脚PF0为捕获引脚 TimerControlEvent(TIMER0_BASE,TIMER_BOTH,TIMER_EVENT_BOTH_EDGES); /*配置为16位的边沿捕获增计数*/ TimerLoadSet(TIMER0_BASE,TIMER_BOTH,200); TimerMatchSet(TIMER0_BASE,TIMER_A,100);//设置匹配值100次 TimerMatchSet(TIMER0_BASE,TIMER_B,20); IntEnable(INT_TIMER0A); //使能Timer0A总中断 IntEnable(INT_TIMER0B); TimerIntEnable(TIMER0_BASE,TIMER_CAPB_MATCH);//使能定时器的捕获计数匹配中断 TimerIntEnable(TIMER0_BASE,TIMER_CAPA_MATCH);//使能定时器的捕获计数匹配中断 IntMasterEnable(); //使能处理器中断 TimerEnable(TIMER0_BASE,TIMER_A|TIMER_B); //此句放在最后,因为定时器要先配置后使能计数 ] |
|
相关推荐
5 个讨论
|
|
kingnet_5220 发表于 2020-4-6 12:27 这个是我测试的一个很简单的程序,一开始红灯亮,进入中断蓝灯亮,对PB6输入PWM波,发现进不去中断程序。编译什么都没问题,问题不知道怎么解决。 int main(void) [ SysCtlClockSet(SYSCTL_SYSDIV_5|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHZ|SYSCTL_OSC_MAIN);//系统时钟工作在40MHz SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB); SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER0); GPIOPinTypeTimer(GPIO_PORTB_BASE, GPIO_PIN_6); GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_2|GPIO_PIN_1); GPIOPinConfigure(GPIO_PB6_T0CCP0); GPIODirModeSet(GPIO_PORTB_BASE,GPIO_PIN_6,GPIO_DIR_MODE_IN); TimerConfigure(TIMER0_BASE, TIMER_CFG_A_CAP_COUNT); TimerControlEvent(TIMER0_BASE, TIMER_A,TIMER_EVENT_POS_EDGE); TimerLoadSet(TIMER0_BASE, TIMER_A, 200); TimerMatchSet(TIMER0_BASE, TIMER_A, 0); IntEnable(INT_TIMER0A); TimerIntEnable(TIMER0_BASE, TIMER_CAPA_MATCH); IntMasterEnable(); TimerEnable(TIMER0_BASE, TIMER_A); while(1) [ GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, 2);//红灯亮 ] ] void Timer0IntHandler(void) [ TimerIntClear(TIMER0_BASE, TIMER_CAPA_MATCH); // Clear the timer interrupt GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_2, 4);//蓝灯亮 GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, 0);//红灯灭 ] |
|
|
|
|
|
只有小组成员才能发言,加入小组>>
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
666 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
597 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1047 浏览 1 评论
730 浏览 0 评论
普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?
519 浏览 1 评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
157浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
119浏览 14评论
在使用3254进行录音的时候出现一个奇怪的现象,右声道有吱吱声,请教一下,是否是什么寄存器设置存在问题?
123浏览 13评论
TLV320芯片内部自带数字滤波功能,请问linein进来的模拟信号是否是先经过ADC的超采样?
121浏览 12评论
TPA6304-Q1: TPA6304 两片公用一组I2C的话,其中一片配置不成功怎么办
163浏览 10评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 05:40 , Processed in 0.843258 second(s), Total 70, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号