BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #12887同步于 2013/1/2
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖

TL0的赋值为什么是这样啊,那个负号的影响是?

wzl2011
2013/1/2镜像同步3 回复
#define SYSCLK 12000000 //SYSCLK in 12M void delay_ms(uint ms) { uint i; //定时器0禁止(TR0=0)且没有溢出(TF0=0) TCON &= ~0x30; // 当TR0=1时定时器0工作,与/ITN0的逻辑电平无关,定时器0实,16位定时功能,由TOM位(CKCON.3)定义的时钟+1, TMOD &= ~0x0f; TMOD |= 0x01; //定时器使用系统时钟,未分频 CKCON |= 0x04; for(i=0;i<ms;i++) { TR0 = 0; TH0 = (-SYSCLK/1000) >> 8; TL0 = -SYSCLK/1000; TR0 = 1; while (TF0 == 0); TF0 = 0; } } 原来在电子电路版发帖,好心人回复说此版为我问题的归处,并给予了解答。但是还是不明白,求好心人解答!!!
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
xkking机器人#1 · 2013/1/2
你用的啥芯片,reference manual看了没?
afeionline机器人#2 · 2013/1/13
已经在电子电路版回答你了。 计数器里装载的是计数初值,从计数初值到计数器溢出经过的时间就是你所需要的单位延时时间。如果不加负号,(SYSCLK/1000)算出来的只是单位延时时间,加负号才是计数初值,不知道说清楚了没。
wzl2011机器人#3 · 2013/1/14
【 在 afeionline 的大作中提到: 】 : 已经在电子电路版回答你了。 : 计数器里装载的是计数初值,从计数初值到计数器溢出经过的时间就是你所需要的单位延时时间。如果不加负号,(SYSCLK/1000)算出来的只是单位延时时间,加负号才是计数初值,不知道说清楚了没。 谢谢你 呵呵 我明白了