TI MPS430 FR2311 - ADC

更新 發佈閱讀 7 分鐘
raw-image

---------------------------------------------------

IDE: TI CCS 20.3.0

--------------------------------------------------


程式碼

#include <msp430.h>
#include <stdint.h>

//================================Define區=============================
//ADC Part

//================================變數區================================
//ADC Part
volatile uint16_t adc_values[3];  // [0]=A2(P1.2), [1]=A3(P1.3), [2]=A5(P1.5)

//================================函式區=================================
//ADC Part
// 初始化 ADC(Vref=AVCC,時脈=SMCLK,10-bit,採樣定時器)
void adc_init_fr2311(void)
{
    PM5CTL0 &= ~LOCKLPM5; // 解除高阻態
    // 設定 A2/P1.2, A3/P1.3, A5/P1.5 為 ADC 輸入
    P1SEL0 |= (BIT2 | BIT3 | BIT5);
    P1SEL1 |= (BIT2 | BIT3 | BIT5);

    ADCCTL0 = ADCSHT_3 | ADCON; // 取樣保持時間長一點、開啟 ADC
    ADCCTL1 = ADCSHP | ADCSSEL_2 | ADCDIV_3; // SMCLK/8 作為 ADC clock

    #ifndef ADCRES_1
    #define ADCRES_1 ADCRES
    #endif
    ADCCTL2 = ADCRES_1; // 10-bit 解析度
}

// 讀單一通道(ch 3/4/5),回傳 0~1023
static inline uint16_t adc_read_ch(uint8_t ch)
{
    ADCCTL0 &= ~ADCENC; // 先 disable ENC 才能設定 channel
    ADCMCTL0 = (ch << 0) | ADCSREF_0; // 設定 channel,參考為 AVCC/AVSS
    // dummy sample 丟棄第一次(確保準確)
    ADCCTL0 |= ADCENC | ADCSC;
    while (ADCCTL1 & ADCBUSY);
    (void)ADCMEM0;
    __delay_cycles(50); // 充電時間,視阻抗調整

    // 正式 sample
    ADCCTL0 |= ADCENC | ADCSC;
    uint16_t timeout = 0xFFFF;
    while ((ADCCTL1 & ADCBUSY) && --timeout);
    return ADCMEM0;
}

// 一次讀三個通道:P1.2→P1.3-P1.5
void adc_read_triplet(void)
{  
    adc_values[0] = adc_read_ch(2); // A2 P1.2
    adc_values[1] = adc_read_ch(3); // A4 P1.3
    adc_values[2] = adc_read_ch(5); // A5 P1.5
}



//================================主程式=================================

int main(void)
{
    WDTCTL = WDTPW | WDTHOLD;// Stop watchdog timer
    PM5CTL0 &= ~LOCKLPM5;   // 解除高阻態,讓 GPIO 可用(即使本例沒用到腳位,建議保留)
    //ADC Init
    adc_init_fr2311();
    __enable_interrupt();     // 開啟中斷

    while(1){
        adc_read_triplet();
        uint16_t value_p1_2 = adc_values[0];
        uint16_t value_p1_3 = adc_values[1];
        uint16_t value_p1_5 = adc_values[2];
        __no_operation();
    }
}


此範例設定了三個讀取ADC的腳位P1.2 P1.3 P1.5

驗證

簡單初步驗證
方法1:將開發版的3.3V腳位 灌到任一隻腳位,
如下圖(灌進P1.2),
這邊要注意若是這樣P1.3 P1.5 腳位要接地,
不然會有怪怪的值。
[0] : 為P1.2量測到的數值。(3.3V大約是1023~1025)
[1] : 為P1.3量測到的數值。
[2] : 為P1.5量測到的數值。

其它腳位有接地

其它腳位有接地

下圖為P1.3 P1.5 未接地

其它腳位未接地

其它腳位未接地

方法2:若開發環境有直流電源供應器就直接輸入0~3.3V,
觀察斷點adc_value的變化,應該是要有線性的特性。


raw-image




留言
avatar-img
留言分享你的想法!
avatar-img
臭G蛋的馬蹄刃
2會員
31內容數
一個路過的代碼騎士,穿梭在各個世界學習。 另外 分享自我學習的心得, 分享主要工作中關於 物聯網、專案管理、綠能、碳排放 相關知識與心得與可實踐的專業內容。 持續學習,也持續分享。
臭G蛋的馬蹄刃的其他內容
2025/11/07
[廠商] Texas Instruments [晶片或平台] MSP430FR2311 [主題功能] UART [語言/工具]C [IDE]CCS
2025/11/07
[廠商] Texas Instruments [晶片或平台] MSP430FR2311 [主題功能] UART [語言/工具]C [IDE]CCS
2025/11/05
[廠商] Texas Instruments [晶片或平台] MSP430FR2311 [主題功能] PWM [語言/工具]C [IDE]CCS
2025/11/05
[廠商] Texas Instruments [晶片或平台] MSP430FR2311 [主題功能] PWM [語言/工具]C [IDE]CCS
2025/11/05
[廠商] Texas Instruments [晶片或平台] MSP430FR2311 [主題功能] GPIO [語言/工具]C [IDE]CCS
2025/11/05
[廠商] Texas Instruments [晶片或平台] MSP430FR2311 [主題功能] GPIO [語言/工具]C [IDE]CCS
看更多
你可能也想看
Thumbnail
今天帶你用 測試驅動開發(TDD) 的方式,在 Rust 裡從零打造一個命令列搜尋工具:minigrep。 這是《Rust 程式設計語言》書中的經典範例,用來學習測試、模組化與生命週期。 Let's go 🚀 首先建立專案: cargo new minigrep cd minigrep
Thumbnail
今天帶你用 測試驅動開發(TDD) 的方式,在 Rust 裡從零打造一個命令列搜尋工具:minigrep。 這是《Rust 程式設計語言》書中的經典範例,用來學習測試、模組化與生命週期。 Let's go 🚀 首先建立專案: cargo new minigrep cd minigrep
Thumbnail
自從 2022 年 FED 步入升息循環以來,利率已提升至超過 5%的水準,美國公債殖利率也跟著創下近 10 年來的新高。在利率大幅上升的影響下,導致去年債市的行情相當低迷,也對國內的金融業造成莫大衝擊;不僅銀行設定存放款利率是一大難題,擁有龐大美債部位的壽險也在資產配置上也面臨相當沉重的壓力
Thumbnail
自從 2022 年 FED 步入升息循環以來,利率已提升至超過 5%的水準,美國公債殖利率也跟著創下近 10 年來的新高。在利率大幅上升的影響下,導致去年債市的行情相當低迷,也對國內的金融業造成莫大衝擊;不僅銀行設定存放款利率是一大難題,擁有龐大美債部位的壽險也在資產配置上也面臨相當沉重的壓力
Thumbnail
開發金控4月稅後純益7.09億,累計今年前四月稅後純益42.11億,EPS為0.25元。 中國人壽受惠整體避險成本降低,經常性收益表現穩定。開發金2日以12.9元作收,上漲0.1元或漲幅0.78%,整周漲0.39%。 三大法人合計周賣超36,193張,外資周賣超58,291張,投信周買超20,666
Thumbnail
開發金控4月稅後純益7.09億,累計今年前四月稅後純益42.11億,EPS為0.25元。 中國人壽受惠整體避險成本降低,經常性收益表現穩定。開發金2日以12.9元作收,上漲0.1元或漲幅0.78%,整周漲0.39%。 三大法人合計周賣超36,193張,外資周賣超58,291張,投信周買超20,666
Thumbnail
開發金控31日舉行法人說明會,受到美國升息衝擊,子公司中國人壽獲利年減9成,首季僅賺3.2億元。 為強化資本結構,將發行100億元10年期以上次順位債,資本適足率(RBC)有望從3月底260%回升至近300%。開發金雙重槓桿比率目前已降至125%法定水準。未來將視市場情況再評估發債。 有關併購擴大金
Thumbnail
開發金控31日舉行法人說明會,受到美國升息衝擊,子公司中國人壽獲利年減9成,首季僅賺3.2億元。 為強化資本結構,將發行100億元10年期以上次順位債,資本適足率(RBC)有望從3月底260%回升至近300%。開發金雙重槓桿比率目前已降至125%法定水準。未來將視市場情況再評估發債。 有關併購擴大金
Thumbnail
本專欄透過各類股票、多家企業、多種 ETF,帶大家從各式各樣公開且可搜尋到的一般性之證券投資訊息來觀察一間公司,並透過資訊歷史資料的彙整,來去整理出明年可能會配發的股息、全年 EPS 以及現價買進的預期殖利率。
Thumbnail
本專欄透過各類股票、多家企業、多種 ETF,帶大家從各式各樣公開且可搜尋到的一般性之證券投資訊息來觀察一間公司,並透過資訊歷史資料的彙整,來去整理出明年可能會配發的股息、全年 EPS 以及現價買進的預期殖利率。
Thumbnail
本專欄透過各類股票、多家企業、多種 ETF,帶大家從各式各樣公開且可搜尋到的一般性之證券投資訊息來觀察一間公司,並透過資訊歷史資料的彙整,來去整理出明年可能會配發的股息、全年 EPS 以及現價買進的預期殖利率。 本專欄會廣泛的使用各種案例來討論不同類股,以教學為主並非針對個股做推薦,也絕非提供個股
Thumbnail
本專欄透過各類股票、多家企業、多種 ETF,帶大家從各式各樣公開且可搜尋到的一般性之證券投資訊息來觀察一間公司,並透過資訊歷史資料的彙整,來去整理出明年可能會配發的股息、全年 EPS 以及現價買進的預期殖利率。 本專欄會廣泛的使用各種案例來討論不同類股,以教學為主並非針對個股做推薦,也絕非提供個股
Thumbnail
開發金股票代號:2883,開發金鄉民暱稱:我開發大金控,前 7 個月 EPS 累計 1,同期累計成長 -22.32%。 整體概況:開發金 7 月稅後獲利 31.75 億元、前 7 月獲利 167.93 億元每股盈餘為 1.0 元,單月 0.19 的我開發大金控。
Thumbnail
開發金股票代號:2883,開發金鄉民暱稱:我開發大金控,前 7 個月 EPS 累計 1,同期累計成長 -22.32%。 整體概況:開發金 7 月稅後獲利 31.75 億元、前 7 月獲利 167.93 億元每股盈餘為 1.0 元,單月 0.19 的我開發大金控。
Thumbnail
這篇筆記的出現,源自於一組無意間看到的扭蛋系列,以及實際拿到後所開的腦洞,於是乎,一個不明意義所在的改造行動,就此展開!
Thumbnail
這篇筆記的出現,源自於一組無意間看到的扭蛋系列,以及實際拿到後所開的腦洞,於是乎,一個不明意義所在的改造行動,就此展開!
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News