msp430g2553的ADC10多通道輸入

2021-10-06 02:17:09 字數 1348 閱讀 5185

msp430g2553有8個外部通道可以輸入,下面將完成3路輸入控制3個led亮滅的程式。

暫存器說明

msp430g2553的adc10暫存器

**說明

在熟悉adc10的幾個暫存器後,來看**

1、adc10ctl1 = inch_5+conseq_1;控制暫存器設定了最高的通道和轉換模式。

2、adc10ae0|= bit5+bit4+bit3;輸入使能暫存器設定了要輸入的引腳。

3、取樣次數和存放位置:

adc10dtc1 = 0x03;設定取樣次數

unsigned int a=;

adc10sa = (unsigned int)a; 存放位址

若p1.5,p1.4,p1.3輸入,取樣3次,通道序列單次**換模式)

則a[0]存放p1.5取樣結果,則a[1]存放p1.4取樣結果,則a[2]存放p1.3取樣結果

若p1.5,p1.4,p1.3輸入,取樣6次,通道序重複**換模式)

則a[0]存放p1.5取樣結果,則a[1]存放p1.4取樣結果,則a[2]存放p1.3取樣結果

則a[3]存放p1.5取樣結果,則a[4]存放p1.4取樣結果,則a[5]存放p1.3取樣結果

eg:4通道4次重複取樣

unsigned int adc[4];

unsigned int adc_temp[16];

for(i=0;i<4;i++)

adc[i]=(adc_temp[i]+adc_temp[i+4]+adc_temp[i+8]+adc_temp[i+12])>>2;除4

#include

unsigned

int a=

;int

main

(void)}

// adc10 interrupt service routine

#if defined(__ti_compiler_version__) || defined(__iar_systems_icc__)

#pragma vector=adc10_vector

__interrupt void

adc10_isr

(void

)#elif defined(__gnuc__)

void __attribute__ (

(interrupt

(adc10_vector)

)) adc10_isr (

void

)#else

#error compiler not supported!

#endif

msp430g2553的adc取樣精度問題

問題 用官方例程進行ad取樣發現直流取樣值非常抖,只有百位上數值不抖。解決 1,ad取樣須考慮取樣基準電壓穩不穩,對於2553來說,其基準電壓可以設定為內部1.5v,2.5v,vcc。或者外部基準電壓 0 vcc 2,取樣頻率,一般來說極高取樣頻率與極高準確度不可兼得。取樣頻率太高很可能造成電容的充...

MSP430G2553 模數轉換器 ADC10

adc10的框圖和主要暫存器的含義,如下圖所示。雖然adc10牽扯的暫存器配置很多,但實際使用起來並不複雜。主要暫存器及功能有 adc10aex 模擬輸入使能,用於使能某個管腳的模擬輸入功能 adc10mem 儲存ad轉換的結果 adc10ctl0 adc10on 開啟 關閉adc10 enc en...

MSP430 G2553 暫存器列表與引腳功能

usci b0 usci b0 傳送緩衝器ucb0txbuf 06fh usci b0 接收緩衝器ucb0rxbuf 06eh usci b0 狀態ucb0stat 06dh usci b0 i2c 中斷啟用ucb0cie 06ch usci b0 位速率控制1 ucb0br1 06bh usci ...