最近失业在家心情郁闷,想想又很久没更新了,把这个相对比较“复杂”的多任务定时器写写吧,之前在csdn的帖子里(《单片机C语言程序该这样写!不是教科书上教的那样!》)就是用的这个定时器来支持我的论点的。又经过了一段时间的使用锤炼,基本可以拿出来献丑一下了。
定时器究竟有多重要?之前我也没有什么直观的感觉,似乎也就那么回事。不就一个中断吗,还能如何?自从我看了《C语言嵌入式系统编程修炼之道》这篇文章,才知道自己之前多幼稚。我引用一下文章里关于定时器重要性的描述:
(1)没有定时器,一个操作系统将无法进行时间片的轮转,于是无法进行多任务的调度,于是便不再成其为一个多任务操作系统;
(2)没有定时器,一个多媒体播放软件将无法运作,因为它不知道何时应该切换到下一帧画面;
(3)没有定时器,一个网络协议将无法运转,因为其无法获知何时包传输超时并重传之,无法在特定的时间完成特定的任务。
因此,没有定时器将意味着没有操作系统、没有网络、没有多媒体,这将是怎样的黑暗?
所以,合理并灵活地使用各种定时器,是对一个软件人的最基本需求!