专栏中心

EEPW首页 > 专栏 > 旋转POV的自适应调节算法

旋转POV的自适应调节算法

发布人:0750long 时间:2010-02-01 来源:工程师 发布文章
旋转POV的自适应调节算法

 

 

先来一张自行车车轮上的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++;                                        //计数
         }

 

        我还是一直相信:“简单即有效”

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

SN74LS373, SN74LS374 常用的8d锁存器

S3C44B0x Samsung ARM7TDMI 应用手册

一文读懂 | 什么是雷达?

APEC 2025最具颠覆性的技术

CES 2010:WiFi充电器 利用无线信号为手机充电

视频 2010-01-18

富捷电阻:卓越品质与成本优势的完美融合

2025-04-18

SAMSUNG KM29U128 16M字节 NAND Flash

台积电将在美国生产30%的2nm和更先进的芯片

EDA/PCB 2025-04-18

CES 2010:海信周厚健在CES高峰论坛发表主题演讲

视频 2010-01-18

CES 2010:Powermat 无线充电组

视频 2010-01-18

通过Analog与PWM调整输出功率1KW智能工业电源

SiC为数据中心的冷却风扇提供高密度电源

SC1175 双DC-DC转换芯片

CES 2010:XSTREAMHD 展位的演示视频

视频 2010-01-18

基于onsemi NCP1341B1 65W Adapter 电源方案

关税问题引发马来西亚的芯片出货量翻倍增加

为什么应该在车辆系统中建立对啮齿动物的抵抗力

汽车电子 2025-04-18

10BASE-T1L单对以太网电缆长度和链路性能

CES 2010:enTourage正式发布双屏电子书eDGe

视频 2010-01-18

一个网站

hpnet 2003-11-12

SC1102 电源芯片

更多 培训课堂
更多 焦点
更多 视频

技术专区