<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

          作者: 時(shí)間:2012-03-29 來(lái)源:網(wǎng)絡(luò) 收藏

          本文引用地址:http://www.ex-cimer.com/article/200575.htm

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

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

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

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

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

          一般在中斷處里程序里應(yīng)盡量簡(jiǎn)化運(yùn)算,減少程序代碼量。我這里巧妙的使用了這樣一個(gè)修正值:

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

          其中N為預(yù)設(shè)的固定值。

          當(dāng)S>N時(shí),修正值D增大,使定時(shí)器T0的時(shí)間值增大,隨之N值減小。

          當(dāng)SN時(shí),修正值D減小,使定時(shí)器T0的時(shí)間值減小,隨之N值增大。

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

          程序程序片段如下:

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

          void intersvr0(void) interrupt 0 using 1

          {

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

          Pt=600+D; //得到定時(shí)器T0的初設(shè)值

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

          }

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

          void timer0(void) interrupt 1 using 1

          {
          TH0=-Pt/256;TL0=-Pt%256; //設(shè)置定時(shí)器T0的初設(shè)值

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

          }



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();