新聞中心

        EEPW首頁 > 光電顯示 > 設計應用 > 旋轉(zhuǎn)POV LED顯示的自適應調(diào)節(jié)算法

        旋轉(zhuǎn)POV LED顯示的自適應調(diào)節(jié)算法

        作者: 時間:2012-03-29 來源:網(wǎng)絡 收藏

        本文引用地址:http://www.104case.com/article/200575.htm

        在制作自行車上的 顯示時,最讓人頭疼的是車輪的轉(zhuǎn)速不勻問題,如何在隨時改變轉(zhuǎn)速的情況下保證能正常顯示是制作中的難題。

        經(jīng)我若干時間的試驗,采用自適應調(diào)節(jié)的方法,很好解決了這個問題,實際運行效果很好。并同時應用在我的新版“硬盤時鐘”的程序中。

        根據(jù)顯示原理,我們需要讓的閃亮頻率與的頻率同步。

        自適應調(diào)節(jié)的算法的思想就是在外部中斷處理程序里,先給定時器T0一個合適的初始值,通過定時器T0處理程序給T0的中斷的次數(shù)計數(shù),當一周完成后,根據(jù)實際中斷次數(shù)與預設的N比較,根據(jù)比較結果,在外部中斷處理程序中對T0的初設值進行修正,直到定時器T0的中斷次數(shù)達到N為止。

        整個調(diào)節(jié)過程是動態(tài)的,程序中并不需要知道一周的具體時間值。

        一般在中斷處里程序里應盡量簡化運算,減少程序代碼量。我這里巧妙的使用了這樣一個修正值:

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

        其中N為預設的固定值。

        當S>N時,修正值D增大,使定時器T0的時間值增大,隨之N值減小。

        當SN時,修正值D減小,使定時器T0的時間值減小,隨之N值增大。

        當S=N時,修正值不產(chǎn)生變化。

        程序程序片段如下:

        /*外部中斷0處理函數(shù)*/

        void intersvr0(void) interrupt 0 using 1

        {

        D=D+(S-N)*2; //修正值

        Pt=600+D; //得到定時器T0的初設值

        S=0; //計數(shù)器清零,將重新計數(shù)

        }

        /*定時中斷0處理函數(shù)*/

        void timer0(void) interrupt 1 using 1

        {
        TH0=-Pt/256;TL0=-Pt%256; //設置定時器T0的初設值

        S++; //計數(shù)

        }



        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 文水县| 菏泽市| 仪陇县| 屏东县| 安泽县| 尼玛县| 克拉玛依市| 花垣县| 肃宁县| 英超| 四川省| 菏泽市| 盐源县| 明光市| 来宾市| 娄烦县| 五常市| 天门市| 漯河市| 丹寨县| 新丰县| 康定县| 威信县| 灵武市| 兰考县| 靖远县| 西丰县| 永寿县| 汶上县| 桦川县| 望谟县| 文水县| 同心县| 龙井市| 岳阳市| 陵水| 浮山县| 海安县| 枝江市| 庐江县| 安乡县|