<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      記一次DAC轉換功能修改的解決

      最近的項目搗鼓msp430需要用到dac轉換以輸出模擬信號,項目代碼是接手前同事的 有些地方調試不通,以前沒有接觸過msp430芯片,更是沒搞過這種芯片io口時序驅動層的東西,甚至純c的都是頭一次作為工作正式用。沒辦法 萬事開頭難嘛 ,硬著頭皮網上到處翻資料 找芯片的手冊 找dac外設的寄存器說明,功夫不負有心人 最終還是被我解決了。

      記錄一下解決的過程

      首先對以前的代碼瀏覽了一遍,以及對網上到處抄過去抄過來的文章有了個初步的大概套路了解。首先這是一個12位的dac外設 ,先對他進行初始化就是 設置參考電壓源 設置各個寄存器 打開外設,然后12位嘛 自然是0x00~0xfff輸出對應電壓。就像下面這樣,事先我已經確保了硬件連線是正確的,知道了DAC12_0CTL是寄存器控制位,知道了DAC12ENC是使外設工作,DAC12_0DAT是輸出模擬量。

      1 //不能使用內部參考電壓 會影響到溫度傳感器
      2   //ADC12CTL0 = REFON + REF2_5V;                        // 參考電壓為內部2.5v
      3   DAC12_0CTL = DAC12AMP_5 + DAC12IR + DAC12LSEL_0;//控制寄存器設置,自動更新數據,內基準為滿量程
      4   DAC12_0CTL |= DAC12SREF_2;//使用外部參考電壓 外部的為3.3v
      5   DAC12_0CTL |= DAC12ENC; // 啟動DAC模塊(DAC12LSEL_0時此句可以省,這里設置為1)
      6   DAC12_0DAT = 0x0000;    //DAC初值為0,更新這個寄存器就可以更改DAC輸出數據

      好我們繼續往下工作,然后在網上翻到了一篇芯片的中文手冊  https://www.docin.com/p-301491113.html  找到了第119頁關于DAC外設描述的位置,主要就是這幅圖。

       

       

       

      學單片機入門的時候這種框圖也見識過 知道是單片機內部機制的描述 跟內部機制是對應的,自己憑這種圖真正解決問題的話是頭一遭。進而我觀察到了自己代碼跟圖上有聯系關系,怎么個聯系法呢 ,那就是DAC12SREFX吸引了我的關注,因為代碼里跟圖上單詞是相似的,原來代碼里寫的是DAC12SREF_0 ,進而我跟蹤到了他的定義。

      1 #define DAC12SREF_0         (0*0x2000u)  /* DAC12 reference 0: Vref+ */
      2 #define DAC12SREF_1         (1*0x2000u)  /* DAC12 reference 1: Vref+ */
      3 #define DAC12SREF_2         (2*0x2000u)  /* DAC12 reference 2: Veref+ */
      4 #define DAC12SREF_3         (3*0x2000u)  /* DAC12 reference 3: Veref+ */

      通過后面的注釋以及其它網站的說明了解到Vref+是內部參考電壓源 Veref+是外部參考電壓源,再進而發現下面還有一個寄存器描述表,我知道事情有眉目了。

       

      通過對照硬件原理圖我已經事先知道了確實是使用的0號通道,也就是DAC12_0CTL,再結合上面的框圖知道了第01是vref 通過框圖看到也是對應的節點也是連在一起的。23是veref,我們是使用外部電壓參考源那么使用2。對照框圖和寄存器說明 以及注釋 覺得直接使用

      DAC12SREF_2應該就對了,那么我們還是來確保驗證一下吧。
      1 #define DAC12SREF_2         (2*0x2000u)  /* DAC12 reference 2: Veref+ */

       2*0x2000u對照上面的寄存器說明可以看到第14 和13 位是二進制的10 ,也正好契合到框圖的DAC12SREFX處梯形的第三個。說明根據以前經驗的推測都是正確的。由于我用的IAR工具里沒法調試,于是把初始化的幾個宏定義玲出來在vc++里查看了最終組合出的字節值,以及把對應的二進制位對照寄存器說明進行了一個確認。然后DAC12_0DAT進行輸出 ,測試一下,大功告成,一切正常。

       

      經過這一過程,感覺人真是神奇 對吧,  通過對現象規律關聯思索  對現象的預測 建立假想模型  ,主觀能動性加上摸索學習能力,竟然也可以解決未知的問題。

       

       

      posted @ 2022-04-23 16:34  assassinx  閱讀(300)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产乱妇乱子在线视频| 午夜国产小视频| 无码h片在线观看网站| 亚洲性猛交xxxx| 亚洲欧洲一区二区三区久久| 漂亮的保姆hd完整版免费韩国| 亚洲精品国产美女久久久| 国产精品亚洲第一区在线| 国产午夜精品久久精品电影| 国产初高中生粉嫩无套第一次 | 亚洲乱码中文字幕久久孕妇黑人| 97国产揄拍国产精品人妻| 日韩中av免费在线观看| 国产婷婷综合在线视频| 亚洲 另类 小说 国产精品无码| 午夜成年男人免费网站| 男受被做哭激烈娇喘gv视频| 亚洲精品中文综合第一页| 中文字幕有码高清日韩| 国产成人av性色在线影院| 97在线视频人妻无码| 壤塘县| 亚洲一区二区三区18禁| 日韩精品亚洲专在线电影| 国产L精品国产亚洲区在线观看| 日韩av一区二区高清不卡| 狠狠v日韩v欧美v| 四虎精品寂寞少妇在线观看| 婷婷色香五月综合缴缴情香蕉| 深田えいみ禁欲后被隔壁人妻| 四虎永久地址www成人| 国产精品一码在线播放| 隆化县| 久女女热精品视频在线观看 | 国产精品三级爽片免费看| 久久66热人妻偷产精品| 精品无码国产污污污免费| 亚洲最大日韩精品一区| 国内精品久久久久影院日本| 久99久热只有精品国产99| 小金县|