新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > MSP430學習筆記(4)ADC12

        MSP430學習筆記(4)ADC12

        作者: 時間:2016-11-27 來源:網絡 收藏

        b)轉換控制寄存器ADC12CTL1

        i.CSStartAdd轉換存儲地址位,可以定義單次轉換地址或序列轉換的首地址。

        ii.SHS采樣輸入觸發源選擇:0為ADC12SC,1為Timer_A.OUT1,2為Timer_B.OUT0,3為Timer_B.OUT1。

        iii.SHP采樣信號(SAMPCON)選擇控制位:0為信號源來自采樣觸發輸入信號,1為信號源來自采樣定時器,由采樣輸入信號的上升沿觸發采樣定時器。

        iv.ISSH采樣輸入信號方向控制位:0為采樣輸入信號為同向輸入,1為反向。

        v.ADC12DIV:ADC12時鐘源分頻因子選擇為。

        vi.ADC12SSEL ADC12內核時鐘源選擇:0為ADC12內部時鐘源ADC12OSC(默認)為1為ACLK,為2為MCLK,為3為SMCLK。

        vii.CONSEQ轉換模式選擇位:0為單通道單次轉換模式,1為序列通道單次轉換模式,2為序列通道多次轉換模式,3為序列通道多次轉換模式。

        viii.ADC12BUSY ADC12忙標志位:0表示沒有活動,1表示忙。

        c)ADC12MEM0~ADC12MEM15轉換存儲寄存器:16位寄存器,用來存放A/D轉換結果,只用其中低12位。

        d)ADC12MCTLx轉換存儲器控制寄存器:

        i.EOS:序列結束控制位:0為序列沒有結束,1為結束。

        ii.Sref參考電壓源選擇位:

        iii.INCH選擇模擬輸入通道:該4位表示的二進制數為所選的模擬輸入通道:

        e)ADC12IFG中斷標志寄存器:ADC12IFGx置位表示轉換結束,并且轉換結果已經裝入轉換存儲寄存器;ADC12IFGx復位表示ADC12MEMx被訪問。

        f)ADC12IE中斷使能寄存器:1為允許響應的ADC12IFGx在置位時發生的中斷請求服務,0為禁止ADC12IFGx在置位時發生的中斷請求服務。

        g)ADC12IV中斷向量寄存器。

        5.初始化代碼

        [cpp]view plaincopyprint?
        1. /*************************************************************************
        2. //名稱:ADC12Init
        3. //參數:ucharTimes-0為單次轉換,1為多次轉換,
        4. ucharTube-0為單通告轉換,1為多通道轉換
        5. ucharn-待轉換的通道(只有在Tube為0的時候有用)
        6. ucharV-0為內部參考電壓,1為外部參考電壓
        7. //返回值:無
        8. //功能:完成ADC12Init的初始化
        9. *************************************************************************/
        10. voidADC12Init(ucharTimes,ucharTube,ucharn,unsignedcharv)
        11. {
        12. if(Tube==0)//單通道轉換
        13. {
        14. if(v==0)
        15. {
        16. ADC12CTL0=ADC12ON+SHT0_8+MSC+REFON+REF2_5V;//使用內部電壓,打開ADC12內核,8分頻,內部參考電壓2.5V
        17. ADC12MCTL0=SREF_0;//使用內部電壓,參考位為AVCC和AVSS
        18. }
        19. if(v==1)
        20. {
        21. ADC12CTL0=ADC12ON+SHT0_8;//使用外部電壓,打開ADC12內核,8分頻
        22. ADC12MCTL0=SREF_2;//使用外部電壓,參考為為VeREF+和AVSS
        23. }
        24. if(Times==0)ADC12CTL1=SHP+CONSEQ_0;//單通道單次轉換,采樣信號來自采樣定時器
        25. if(Times==1)ADC12CTL1=SHP+CONSEQ_2;//單通道多次轉換,采樣信號來自采樣定時器
        26. switch(n)//選擇通道
        27. {
        28. case0:ADC12MCTL0|=INCH_0;break;
        29. case1:ADC12MCTL0|=INCH_1;break;
        30. case2:ADC12MCTL0|=INCH_2;break;
        31. case3:ADC12MCTL0|=INCH_3;break;
        32. case4:ADC12MCTL0|=INCH_4;break;
        33. case5:ADC12MCTL0|=INCH_5;break;
        34. case6:ADC12MCTL0|=INCH_6;break;
        35. case7:ADC12MCTL0|=INCH_7;break;
        36. }
        37. ADC12IE=n;//使能待轉換通道的中斷
        38. ADC12CTL0|=ENC;//開啟軟件使能
        39. }
        40. if(Tube==1)//多通道轉換
        41. {
        42. if(v==0)
        43. {
        44. ADC12CTL0=ADC12ON+SHT0_8+MSC+REFON+REF2_5V;//使用內部電壓,打開ADC12內核,8分頻,內部參考電壓2.5V
        45. ADC12MCTL0=SREF_0;//使用內部電壓,參考位為AVCC和AVSS
        46. }
        47. if(v==1)
        48. {
        49. ADC12CTL0=ADC12ON+SHT0_8;//使用外部電壓,打開ADC12內核,8分頻
        50. ADC12MCTL0=SREF_2;//使用外部電壓,參考為為VeREF+和AVSS
        51. }
        52. if(Times==0)ADC12CTL1=SHP+CONSEQ_1;//多通道單次轉換,采樣信號來自采樣定時器
        53. if(Times==1)ADC12CTL1=SHP+CONSEQ_3;//多通道多次轉換,采樣信號來自采樣定時器
        54. ADC12IE=0xff;//使能待轉換通道的中斷
        55. ADC12CTL0|=ENC;//開啟軟件使能
        56. }
        57. }


        上一頁 1 2 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 台中市| 个旧市| 永城市| 四川省| 东乡县| 东乌珠穆沁旗| 德兴市| 陇西县| 辉南县| 福鼎市| 福州市| 西充县| 英德市| 乌拉特中旗| 齐河县| 星子县| 当涂县| 江源县| 延吉市| 隆德县| 南充市| 青阳县| 吴堡县| 松潘县| 漠河县| 留坝县| 永吉县| 石屏县| 海林市| 台前县| 和硕县| 海口市| 张家口市| 华宁县| 关岭| 洪洞县| 张家界市| 财经| 朝阳县| 鄂托克旗| 逊克县|