打印

动画显示

[复制链接]
620|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zya888|  楼主 | 2016-1-31 17:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    动画是无所谓有,无所谓无的,静止的画面走的路多了,也就成了动画。随着时间的变更,在屏幕上显示不同的静止画面,即是动画之本质。所以,在一个嵌入式系统的LCD上欲显示动画,必须借助定时器。没有硬件或软件定时器的世界是无法想像的:
沙发
quangg| | 2016-1-31 17:40 | 只看该作者
没有定时器,一个操作系统将无法进行时间片的轮转,于是无法进行多任务的调度,于是便不再成其为一个多任务操作系统;

使用特权

评论回复
板凳
quangg| | 2016-1-31 17:41 | 只看该作者
没有定时器,一个多媒体播放软件将无法运作,因为它不知道何时应该切换到下一帧画面;

使用特权

评论回复
地板
zya888|  楼主 | 2016-1-31 17:41 | 只看该作者
没有定时器,一个网络协议将无法运转,因为其无法获知何时包传输超时并重传之,无法在特定的时间完成特定的任务。

使用特权

评论回复
5
quangg| | 2016-1-31 17:42 | 只看该作者
因此,没有定时器将意味着没有操作系统、没有网络、没有多媒体,这将是怎样的黑暗?所以,合理并灵活地使用各种定时器,是对一个软件人的最基本需求!

使用特权

评论回复
6
zya888|  楼主 | 2016-1-31 17:42 | 只看该作者
在80186 为主芯片的嵌入式系统中,我们需要借助硬件定时器的中断来作为软件定时器,在中断发生后变更画面的显示内容。在时间显示"xx:xx"中让冒号交替有无,每次秒中断发生后,需调用ShowDot :

使用特权

评论回复
7
zya888|  楼主 | 2016-1-31 17:43 | 只看该作者
void ShowDot()
{
  static BOOL bShowDot = TRUE; /*  再一次领略static 关键字的威力 */
  if(bShowDot)
  {
  showChar( ’: ’,xPos,yPos);
  }
  else
  {
  showChar( ’ ’,xPos,yPos);
  }
  bShowDot = ! bShowDot;
}

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

32

主题

239

帖子

1

粉丝