导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→求助:有关ATmega16的TCNT0[mlxt1018]

 *第3658篇: 求助:有关ATmega16的TCNT0

  
楼 主:mlxt1018 2008年5月9日14:28
 求助:有关ATmega16的TCNT0
手头上有个ATmega16的源程序,其中启动定时器0的程序如下:

void StartTimer0(INT8U us)      //开始定时器0
{
 TCCR0  = 0x00;      //停止定时器
 if(us == 20)
 {
    TCNT0  = 0xE4;   //228,20us初始值  
 }
 else if(us == 40)
 {
    TCNT0  = 0xC9;   //201,40us初始值 
 }

 TIMSK |= 0x01;      //中断允许
 TCCR0  = 0x02;      //启动定时器,8分频
}

查了很多资料,但对TCNT0的初始值仍有疑惑,望高手答疑解惑。
TCNT0是8位寄存器,定时值:T=(256-计数初值)/晶振频率*分频数
将20us、228、分频数8带入可求得晶振频率F=0.175MHz,
将40us、201、分频数8带入可得F=0.172M

另外#define F_CPU 8000000UL      (8M)

CPU的晶振好像和上述两个频率没什么关系啊!!! 而TCCR0  = 0x02设置时钟源来自预分频器。


>>>>>>对该主题发表你的看法

本主题贴数1,分页: [第1页]


[上一篇主题]:下位机程序求助~~~

[下一篇主题]:Zigbee开发系统升级活动