《旋转POV自适应的算法.docx》由会员分享,可在线阅读,更多相关《旋转POV自适应的算法.docx(1页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、在制作自行车上的POV LED显示时,最让人头疼的是车轮的转速不匀问题, 如何在随时转变转速的状况下保证能正常显示是POV制作中的难题。经我假设干时间的试验,采纳自适应调整的方法,很好解决了这个问题,实际 运行效果很好。并同时应用在我的新版“硬盘时钟”的程序中。依据POV显示原理,我们需要让LED的闪亮频率与旋转的频率同步。自适应调整的算法的思想就是在外部中断处理程序里,先给定时器TO 一个 合适的初始值,通过定时器TO处理程序给TO的中断的次数计数,当旋转一周 完成后,依据实际中断次数与预设的N比拟,依据比拟结果,在外部中断处理 程序中对TO的初设值进行修正,直到定时器TO的中断次数到达N为
2、止。整个调整过程是动态的,程序中并不需要知道旋转一周的详细时间值。一般在中断处里程序里应尽量简化运算,削减程序代码量。我这里奇妙的使 用了这样一个修正值:D=D+(S-N)*2;其中N为预设的固定值。当SN时,修正值D增大,使定时器TO的时间值增大,随之N值减小。当SN时,修正值D减小,使定时器TO的时间值减小,随之N值增大。当S=N时,修正值不产生变化。程序程序片段如下:/*外部中断0处理函数*/void intersvrO(void) interrupt 0 using 1(D=D+(S-N)*2; /修正值Pt=600+D; /得到定时器TO的初设值S=0;计数器清零,将重新计数)/*定时中断0处理函数*/void timerO(void) interrupt 1 using 1THO=-Pt/256;TL0=-Pt%256; 设置定时器TO的初设值S+; /计数