您的位置 首页 被动

旋转POV LED显现的自适应调理算法

本站为您提供的旋转POV LED显示的自适应调节算法,在制作自行车上的POV LED显示时,如何在随时改变转速的情况下保证能正常显示是POV制作中的难题。

  在制造自行车上的POV LED显现时,最让人头疼的是车轮的转速不匀问题,如安在随时改动转速的情况下确保能正常显现是POV制造中的难题。

  经我若干时刻的实验,选用自适应调理的办法,很好处理了这个问题,实践运转作用很好。并一起应用在我的新版“硬盘时钟”的程序中。

  依据POV显现原理,咱们需要让LED的闪亮频率与旋转的频率同步。

  自适应调理的算法的思维就是在外部中止处理程序里,先给守时器T0一个适宜的初始值,经过守时器T0处理程序给T0的中止的次数计数,当旋转一周完成后,依据实践中止次数与预设的N比较,依据比较成果,在外部中止处理程序中对T0的初设值进行批改,直到守时器T0的中止次数到达N停止。

  整个调理进程是动态的,程序中并不需要知道旋转一周的详细时刻值。

  一般在中止处里程序里应尽量简化运算,削减程序代码量。我这儿奇妙的使用了这样一个批改值:

  D=D+(S-N)*2;

  其间N为预设的固定值。

  当S>N时,批改值D增大,使守时器T0的时刻值增大,随之N值减小。

  当S<N时,批改值D减小,使守时器T0的时刻值减小,随之N值增大。

  当S=N时,批改值不发生改变。

  程序程序片段如下:

  /*外部中止0处理函数*/

  void intersvr0(void) interrupt 0 using 1

  {

  D=D+(S-N)*2; //批改值

  Pt=600+D; //得到守时器T0的初设值

  S=0; //计数器清零,将从头计数

  }

  /*守时中止0处理函数*/

  void TImer0(void) interrupt 1 using 1

  {

  TH0=-Pt/256;TL0=-Pt%256; //设置守时器T0的初设值

  S++; //计数

  }

 

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/beidong/57482.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部