搜索
bottom↓
回复: 4

请教马老师一个ATmega128订时器的问题

[复制链接]

出0入0汤圆

发表于 2007-12-20 15:42:16 | 显示全部楼层 |阅读模式
马老师,您好!我是您的读者,在<高档8位单片机ATmega128原理与开发应用指南>一书的bootloader(Page314)例程里有这样一个地方:
....
//初始化的M128的T/C0,15ms自动重载
OCR0=0xEA;
TCCR0=0x0F;
....
问题:没有定义TCNT0的初值,这个15ms是怎么算的?

这里,16Mhz时钟采用1024进行分频,我这样计算了一下:T=1024/16,000,000s=64000ns
t=T*234=64000*234~=15ms
直接用OCR0寄存器初值进行计算得出是15ms.但是一直觉得有问题.0CR0与TCNT0的不间断的进行比较,匹配时可以用来产生中断.TCNT0没有赋初值怎么增加或者减少来和OCR0比较啊?谢谢您!

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2007-12-20 19:09:16 | 显示全部楼层
定时器开始计数,TCNT0不就开始加1吗?从0加到0xEA,与OCR0相等,产生中断,TCNT0自动清零,然后下一个计数脉冲到来,TCNT0又加1......

有什么不清楚?

出0入0汤圆

 楼主| 发表于 2007-12-21 09:29:10 | 显示全部楼层
谢谢马老师!这么说就是TCNTO的初值默认就是0了?我还以为一定要给TCNTO赋初值,然后开始记数后,在这个值的基础上每次加一或者减一,直到和0CR0的值一样.

出0入0汤圆

 楼主| 发表于 2007-12-21 11:25:46 | 显示全部楼层
现在做一个项目的:
模式1: 输出按键+输入按键+控制按键(必须按照这个次序)
模式2: 输出按键+输入按键
模式1下,在控制按键按下前,输出输入可以改变.
一个完整的命令在3秒内完成,否则视为用户取消命令.比如:模式1下,按完输出后开始计时,3秒内没有按下"输入+控制";或者模式2下按完输出按键后开始计时,3秒内无输入按下,也视为用户取消当前命令.
期间,输出可以切换,比如:按下输出1开始计时后(不满3秒),用户又选择输出2,那么就取消原来的计时,从现在开始计时.
如果3秒内全部按键按下,则让定时器取消工作.

我用的是ATmega128,打算16位T/C1.请问:T/C开始工作后,在进入中断前能让它停止工作再重新从0开始计数吗?

出0入0汤圆

发表于 2007-12-21 20:39:04 | 显示全部楼层
请问:T/C开始工作后,在进入中断前能让它停止工作再重新从0开始计数吗?

都可以的.请仔细看器件手册,或相关资料说明,真正掌握T/C1的应用.
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-25 11:28

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表