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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 音效集成PT2314,PT2313的使用指導(dǎo)

          音效集成PT2314,PT2313的使用指導(dǎo)

          作者: 時(shí)間:2016-11-17 來(lái)源:網(wǎng)絡(luò) 收藏
          使用預(yù)編譯巧妙實(shí)現(xiàn)AD按鍵程序算法

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

          常見AD電阻網(wǎng)絡(luò)連接方式一般為下圖連接方式,對(duì)于不同的應(yīng)用,可能電阻有所調(diào)整,如何使用宏定義實(shí)現(xiàn)ADC值自動(dòng)計(jì)算?

          |
          Z 10K
          Z
          12001000820680560 470 |
          -----WW------WW-----WW-------WW------WW------WW------------ >ADC
          | | | | | | |
          K0K1 K2 K3 K4 K5 K6
          | | | | | | |
          = = = = = = =

          為代碼便于調(diào)整,現(xiàn)定義宏,設(shè)定每個(gè)電阻值:

          //ADC 電路采樣參數(shù)
          #define RES_POL10//上拉電阻,單位K
          #define ADC_MAX1024//ADC采樣精度
          //AD鍵盤各個(gè)電阻值,單位是K
          #define RES00.01
          #define RES10.47
          #define RES20.56
          #define RES30.68
          #define RES40.82
          #define RES51.00
          #define RES61.20
          #define RES71.50
          #define RES81.80
          #define RES92.20
          #define RES102.70
          #define RES113.30
          #define RES124.70
          #define RES136.80
          #define RES1410.0
          #define RES1518.0
          #define RES1633.0
          #define RES1782.0

          然后計(jì)算每個(gè)開關(guān)電阻累加和

          #define RES_SUM0(RES0)
          #define RES_SUM1(RES_SUM0+RES1)
          #define RES_SUM2(RES_SUM1+RES2)
          #define RES_SUM3(RES_SUM2+RES3)
          #define RES_SUM4(RES_SUM3+RES4)
          #define RES_SUM5(RES_SUM4+RES5)
          #define RES_SUM6(RES_SUM5+RES6)
          #define RES_SUM7(RES_SUM6+RES7)
          #define RES_SUM8(RES_SUM7+RES8)
          #define RES_SUM9(RES_SUM8+RES9)
          #define RES_SUM10(RES_SUM9+RES10)
          #define RES_SUM11(RES_SUM10+RES11)
          #define RES_SUM12(RES_SUM11+RES12)
          #define RES_SUM13(RES_SUM12+RES13)
          #define RES_SUM14(RES_SUM13+RES14)
          #define RES_SUM15(RES_SUM14+RES15)
          #define RES_SUM16(RES_SUM15+RES16)
          #define RES_SUM17(RES_SUM16+RES17)

          再通過(guò)預(yù)編譯運(yùn)算出實(shí)際的ADC值

          #define KEY_ADC0(RES_SUM0/(RES_SUM0+RES_POL)*ADC_MAX)
          #define KEY_ADC1(RES_SUM1/(RES_SUM1+RES_POL)*ADC_MAX)
          #define KEY_ADC2(RES_SUM2/(RES_SUM2+RES_POL)*ADC_MAX)
          #define KEY_ADC3(RES_SUM3/(RES_SUM3+RES_POL)*ADC_MAX)
          #define KEY_ADC4(RES_SUM4/(RES_SUM4+RES_POL)*ADC_MAX)
          #define KEY_ADC5(RES_SUM5/(RES_SUM5+RES_POL)*ADC_MAX)
          #define KEY_ADC6(RES_SUM6/(RES_SUM6+RES_POL)*ADC_MAX)
          #define KEY_ADC7(RES_SUM7/(RES_SUM7+RES_POL)*ADC_MAX)
          #define KEY_ADC8(RES_SUM8/(RES_SUM8+RES_POL)*ADC_MAX)
          #define KEY_ADC9(RES_SUM9/(RES_SUM9+RES_POL)*ADC_MAX)
          #define KEY_ADC10(RES_SUM10/(RES_SUM10+RES_POL)*ADC_MAX)
          #define KEY_ADC11(RES_SUM11/(RES_SUM11+RES_POL)*ADC_MAX)
          #define KEY_ADC12(RES_SUM12/(RES_SUM12+RES_POL)*ADC_MAX)
          #define KEY_ADC13(RES_SUM13/(RES_SUM13+RES_POL)*ADC_MAX)
          #define KEY_ADC14(RES_SUM14/(RES_SUM14+RES_POL)*ADC_MAX)
          #define KEY_ADC15(RES_SUM15/(RES_SUM15+RES_POL)*ADC_MAX)
          #define KEY_ADC16(RES_SUM16/(RES_SUM16+RES_POL)*ADC_MAX)
          #define KEY_ADC17(RES_SUM17/(RES_SUM17+RES_POL)*ADC_MAX)

          這樣,在ADC采樣運(yùn)用中可設(shè)計(jì)如下數(shù)組:

          UINT16 keyAdcTable1[] ={
          KEY_ADC0,
          KEY_ADC1,
          KEY_ADC2,
          KEY_ADC3,
          KEY_ADC4,
          KEY_ADC5,
          KEY_ADC7,
          KEY_ADC8,
          KEY_ADC9,
          KEY_ADC10,
          KEY_ADC11,
          KEY_ADC12,
          KEY_ADC17,
          };

          通過(guò)查表法可方便的獲得當(dāng)前某個(gè)按鍵是否按下。

          此法在運(yùn)算上沒(méi)有特別之處,只是巧妙利用C的預(yù)編譯處理,美化代碼,同時(shí)簡(jiǎn)潔了操作步驟,常規(guī)的固定值計(jì)算方法如果某個(gè)電阻發(fā)生變化,需要調(diào)整后續(xù)一系列ADC計(jì)算值,非常不方便,如有更巧妙算法,歡迎討論!



          評(píng)論


          技術(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); })();