[AVR单片机] 看似简单,实际难以理解的一小段延时程序

[复制链接]
3143|8
 楼主| 柔月 发表于 2007-10-23 10:59 | 显示全部楼层 |阅读模式
void timerTicksDelay(uchar ticks)
{
char    d, until = TCNT0 + ticks;

    do{
        d = TCNT0 - until;  /* enforce 8 bit arithmetics */
    }while(d < 0);
}
 楼主| 柔月 发表于 2007-10-23 11:00 | 显示全部楼层

严格一点的写法

void timerTicksDelay(uchar ticks)
{
signed char    d;
signed char  until = TCNT0 + ticks;

    do{
        d = TCNT0 - until;  /* enforce 8 bit arithmetics */
    }while(d < 0);
}
 
一级菜鸟 发表于 2007-10-23 11:03 | 显示全部楼层

延时ticks个定时器周期咯

 楼主| 柔月 发表于 2007-10-23 11:08 | 显示全部楼层

能够真正理解的估计不多

一级菜鸟 发表于 2007-10-23 11:16 | 显示全部楼层

呵呵,有什么难理解的?char型兜了个圈子而已

ayb_ice 发表于 2007-10-23 19:00 | 显示全部楼层

随便说说

延时ticks个定时器周期而已,利用有符号数而已。。。
NE5532 发表于 2007-10-23 21:40 | 显示全部楼层

d = -tick

柔mm合适开始钻研单片机了?
dlwlmlj 发表于 2007-10-24 17:30 | 显示全部楼层

我也纳闷 不会是假的吧

名字好长呀!
mohanwei 发表于 2007-10-24 19:06 | 显示全部楼层

后面多了空白字符,呵呵

您需要登录后才可以回帖 登录 | 注册

本版积分规则

24

主题

464

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部