完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我用的是定时器3,看ti的官方例程都是用自由计数模式,最快都要255us一次中断,而我把模式改成模模式或者倒计数模式,也设置了初值,定时器都没在工作(我用ccdebugger看T3CNT判断的)。我再做旋转编码器的去抖所以想定个100us的定时中断。
|
|
相关推荐
15个回答
|
|
//定时器初始化
void InitT3() { T3CTL |= 0x08 ; //开溢出中断 T3IE = 1; //开T3中断 T3CTL|=0XE0; //128分频,128/16000000*N=0.5S,N=62500 T3CTL &= ~0X03; //自动重装,选择自由模式 00->0xff 62500/256=244(次) T3CTL |=0X10; //启动 EA = 1; //开总中断 } 你自己改下参数,得到你要的时间。 |
|
|
|
调试半天发现定时器3会工作,但是在启动后会进一次中断,然后就关闭了(我是直接看T3CTL的值判断的),得在中断里添加T3CTL |= 0x10才能保证定时器继续工作。。。
但是这是为什么啊?定时器3会自动关闭,我是在裸机上跑的实验,也没看到其他地方有对T3CTL的START位清零啊,有没有51高手?求指导!! |
|
|
|
其实我是想用模模式或者倒计数模式,这样设置方便,也不需要在中断做累加处理。你这个方法我也用过,但是不能准确定时100us,会有十几微秒的偏差。现在我可以用模模式了,但是会出现我在1楼说的那种情况,你知道是怎么回事吗?T3CTL的START会硬件清零?
|
|
|
|
十几微秒的偏差?不管用哪种模式,都能得到准确中断时间的,时间不对是你设置的问题。
|
|
|
|
如果定时器的输入频率是16M,工作在自由计数模式,那么每次中断周期都是以255*计数一次的时间,这个计数时间是从16M分频之后得来的,这样怎么都不会有整100us出现吧?
|
|
|
|
我之前的意思是,相对于100us而言,自由模式的中断周期会有一定偏差。还有。。。我1楼提的那种情况能顺带解答下么。。。
|
|
|
|
用溢出模式,得不到整的100US,你就用其他方式,看你做的东西,时间也不是要很准的,不一定就是100US。当然,这个100US一定可以弄出来的,你用其他方式。
|
|
|
|
用溢出模式,可以得到96US的时间,如果用其他模式,可以得到你想要的100US,多动手试试,不要怀疑它。
|
|
|
|
如果你真想用溢出中断,就做个变量累计,可以得到接近100US的时间,不要太纠结那一点点误差,你又不是做想要很精准的东西。
|
|
|
|
溢出模式是哪个?四种模式都是溢出触发中断啊。我在用状态机做旋转编码器去抖,然后是用定时器轮询的方式判断正反转,所以想用模模式分频完直接设置T3CC0就能实现自定周期的中断,这样调试也方便。至于100us完全是怕来不及去抖。。
|
|
|
|
编码器输出波形你看过了?我不知道我以前弄的编码器和你弄的是不是一样,编码器可以中断来判断,不用定时器。
|
|
|
|
- - 没有示波器。。。全是靠上网找的资料,我用的是EC11的旋转编码器。用中断我一开始也试过,但是有大神建议我中断最好少做程序,最好用定时器做轮询,函数就放在主任务里。
|
|
|
|
旋转编码器,就是判断左旋或者右旋的情况吧?如果是这样,用中断又何妨,进一次中断就执行几行代码就OK,还省了定时器。
|
|
|
|
void InitT3()
{ T3CTL |= 0x08 ; //开溢出中断 T3IE = 1; //开总中断和T3中断 T3CTL |= 0xE0; //128分频,128/16000000*N=0.5S,N=62500 T3CTL |= 0x02; // T3CC0 = 20%256; T3CCTL0 |= 0x04; T3CTL |= 0x10; //启动 EA = 1; //开总中断 } |
|
|
|
可以用硬件定时器吗
|
|
|
|
只有小组成员才能发言,加入小组>>
2989 浏览 9 评论
2701 浏览 16 评论
3225 浏览 1 评论
8465 浏览 16 评论
3788 浏览 18 评论
6972浏览 6评论
求助,请问MS51FB9AE带隙电压能作为侦测的基准电压吗?
7464浏览 3评论
6962浏览 3评论
支持UART-to-BLE透传的新唐NuTool – BLE ATCMD开发工具推荐
5811浏览 3评论
9385浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-5-1 19:12 , Processed in 0.797481 second(s), Total 89, Slave 70 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号