master0722 发表于 2010-10-12 22:30:03

问下傻孩子你的书中关于定时器1的内容的不同意见之处!!

傻孩子,你好。前段时间买了你的书,看着非常受益。
然后我看到第127页,关于重加载定时中断周期这段函数的时候,我有个疑问,想请教一下:
有以下两段函数:
void Timer1_OVF_ISR(void)
{
    TCNT1L=0xFF;
    TCNT1H=0x05;
}

void Timer1_OVF_ISR(void)
{
    TCCR0B = 0x00;
    TCNT1L=0xFF;
    TCNT1H=0x05;
    TCCR0B = 0x05;
}

我看到第1个函数重载方式可能会“丢失”计数器低半字节的设置信息。第2个函数是为了补救所写的。
但是这样的话,我的疑问来了,但是第2个函数的话,这样计数器在整个过程中计数精度就不是很高了。好比这4句话运行完之后,才开始计数,那么这4句话的时间就是多出来的误差了。
你觉得我的理解对吗??有么有什么办法弥补下??

little_Monkey 发表于 2010-10-12 22:38:44

这个只是示例,实际情况需要把现场保护的时间算进去,要精确就用自动重装方式

master0722 发表于 2010-10-12 23:06:40

怎么个重装法???请教楼上

Gorgon_Meducer 发表于 2010-10-13 00:13:23

请下载链接里面的电子书,然后看定时器章节。
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3239709&bbs_page_no=1&bbs_id=3039

machao 发表于 2010-10-13 00:41:59

还是51的思想!害人不浅,赶快放弃之。

既然每次都是重置相同的初值,为什么不用CTC方式?在我的讨论组中有专门的讨论和分析。

使用现在比mcs-51好的MCU,尽量不要使用溢出中断!

Gorgon_Meducer 发表于 2010-10-13 00:54:40

嗯,谢谢马老师提醒,所以我才写了补遗的内容,详细介绍了几种不同的计数器模型,让读者做到知其然,知其所以然。

master0722 发表于 2010-10-14 16:36:04

回复【4楼】machao
-----------------------------------------------------------------------

那请问用什么方法啊??有么有连接啊?谢谢

Gorgon_Meducer 发表于 2010-10-14 22:04:24

你看我给你链接里面的资料就知道了。不要浮躁,如果你真的看过那个资料,也不会再问这个问题。
页: [1]
查看完整版本: 问下傻孩子你的书中关于定时器1的内容的不同意见之处!!