完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
|
相关推荐
9个回答
|
|
|
|
|
|
|
|
|
|
不懂,努力学习中,帮你顶下。
|
|
|
|
本帖最后由 3htech 于 2012-11-21 16:22 编辑
首先要明白一点:定时器不可停止! 要想实现精确定时,自动重装方式是必不可少的。 如果不用自动重装,那么在保证THx和TLx都不溢出的情况下,使用THx += 初值高8位,TLx += 初值低8位,来避免少算计数个数。 如果再想提高精度,那么必须使用高精度的晶振。晶振和电阻一样,也是有误差的。 |
|
|
|
中断中设定定时初值时,可以先关定时器,设定后再开定时器,设定值在计算值基础上加12(根据精度调节),另外如果其他方面能接受,10ms中断改成40ms中断,定时装载的误差可以更小。另外普通晶振稳定度是100ppm,极限误差2个多小时1秒。
|
|
|
|
晕死,用时钟芯片精度并不见得会高,你现在用的也是晶振,时钟芯片上用的也是晶振
精度高低完全取决于所用晶振的精度 如果你用的晶振精度高于时钟芯片上的晶振,你完全可以获得更好的计时精度 软件上完全可以做到没有误差,也没有什么累积误差 在中断中重设定时器初值的方法不是很好,需要修正,还要防止更高级中断打断,用c语言写程序时不方便修正等等 你完全可以用16位方式,不需要重新设置初值 这样一来定时器中断频率是18432000/12/256/256=6000/256 也就是说6000次循环时间是256秒 你在你的中断函数中设置一个静态变量,每次加上256,发现大于6000就减去6000,同时秒数加1 这样的程序不管是c还是汇编都很容易实现,也没有累积误差 也不需要特殊调整 |
|
|
|
看看 正在弄这个。。
|
|
|
|
呵呵 期待解决方案
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
72 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
509 浏览 0 评论
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】(第三篇)ADC采集+PWM输出
546 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十五章 人脸识别实验
545 浏览 0 评论
1008 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11763 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 14:44 , Processed in 0.808971 second(s), Total 86, Slave 69 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号