開發版型號:SEED—MSP430F5529A
開發工具 :CCS 5.4v
以下內容是CCS中ADC12操作的一些簡單的demo,現整理如下:
有關MSP430F5529芯片ADC12相關資料,可參考《MSP430x5xx and MSP430x6xx Family User's Guide (Rev. M)——Chapter 28?ADC12_A》
1:demo描述
Description: A single sample is made on A0 with reference to AVcc.
Software sets ADC12SC to start sample and conversion - ADC12SC
automatically cleared at EOC. ADC12 internal oscillator times sample (16x)
and conversion. In Mainloop MSP430 waits in LPM0 to save power until ADC12
conversion complete, ADC12_ISR will force exit from LPM0 in Mainloop on
reti. If A0 > 0.5*AVcc, P1.0 set, else reset.
參考AVcc電壓、以A0定時器作為采樣輸入信號源的、單通道單次模式采樣,當采樣信號大于0.5*AVcc時,P1.0置位,否則為0。
代碼如下:
1 #include <msp430.h>
2
3 int main(void)
4 {
5 WDTCTL = WDTPW + WDTHOLD; // Stop WDT
6 ADC12CTL0 = ADC12SHT02 + ADC12ON; // Sampling time, ADC12 on
7 ADC12CTL1 = ADC12SHP; // Use sampling timer
8 ADC12IE = 0x01; // Enable interrupt
9 ADC12CTL0 |= ADC12ENC;
10 P6SEL |= 0x01; // P6.0 ADC option select
11 P1DIR |= 0x01; // P1.0 output
12
13 while (1)
14 {
15 ADC12CTL0 |= ADC12SC; // Start sampling/conversion
16
17 __bis_SR_register(LPM0_bits + GIE); // LPM0, ADC12_ISR will force exit
18 __no_operation(); // For debugger
19 }
20 }
21
22 #pragma vector = ADC12_VECTOR
23 __interrupt void ADC12_ISR(void)
24 {
25 switch(__even_in_range(ADC12IV,34))
26 {
27 case 0: break; // Vector 0: No interrupt
28 case 2: break; // Vector 2: ADC overflow
29 case 4: break; // Vector 4: ADC timing overflow
30 case 6: // Vector 6: ADC12IFG0
31 if (ADC12MEM0 >= 0x7ff) // ADC12MEM = A0 > 0.5AVcc?
32 P1OUT |= BIT0; // P1.0 = 1
33 else
34 P1OUT &= ~BIT0; // P1.0 = 0
35
36 __bic_SR_register_on_exit(LPM0_bits); // Exit active CPU
37 case 8: break; // Vector 8: ADC12IFG1
38 case 10: break; // Vector 10: ADC12IFG2
39 case 12: break; // Vector 12: ADC12IFG3
40 case 14: break; // Vector 14: ADC12IFG4
41 case 16: break; // Vector 16: ADC12IFG5
42 case 18: break; // Vector 18: ADC12IFG6
43 case 20: break; // Vector 20: ADC12IFG7
44 case 22: break; // Vector 22: ADC12IFG8
45 case 24: break; // Vector 24: ADC12IFG9
46 case 26: break; // Vector 26: ADC12IFG10
47 case 28: break; // Vector 28: ADC12IFG11
48 case 30: break; // Vector 30: ADC12IFG12
49 case 32: break; // Vector 32: ADC12IFG13
50 case 34: break; // Vector 34: ADC12IFG14
51 default: break;
52 }
53 }
2:代碼分析
1)主函數中代碼:
1 ADC12CTL0 = ADC12SHT02 + ADC12ON; // Sampling time, ADC12 on
2 ADC12CTL1 = ADC12SHP; // Use sampling timer
3 ADC12IE = 0x01; // Enable interrupt
4 ADC12CTL0 |= ADC12ENC;
5
6 ADC12CTL0 |= ADC12SC; // Start sampling/conversion
參考控制寄存器如下:
ADCSHT0x :采樣保持定時器0,該四位定義了保存在轉換存儲寄存器中轉換結果的采樣周期;
ADC12ENC:轉換允許
ADC12SHP:選擇采樣定時器A0輸出
ADC12IE:中斷允許 (來自中斷允許寄存器)
2)中斷部分代碼:
中斷寄存向量ADC12IV中的數字(0-36)用來判斷中斷標志寄存器中相關位是否置位,此時表明轉換結果已經裝入轉換存儲寄存器中,具體數字的含義參見下圖:
3)
1 if (ADC12MEM0 >= 0x7ff) // ADC12MEM = A0 > 0.5AVcc?
2 P1OUT |= BIT0; // P1.0 = 1
3 else
4 P1OUT &= ~BIT0; // P1.0 = 0
參考電壓使用VCC,因為ADC精度為12位(4095),所以0x7FF(2047)就是0.5Vcc的AD值
上一篇:如何使用MSP430的ADC測量模擬電壓?
下一篇:MSP430(F5529)學習筆記——UCS配置詳解
推薦閱讀
史海拾趣
進入21世紀后,Hammond進行了內部重組,將變壓器事業部分拆為獨立的Hammond Power Solutions, Inc.(HPSI)。這一舉措使得兩家公司能夠更加專注于各自的核心業務,實現更加高效和專業化的發展。Hammond Manufacturing則繼續專注于電氣和電子外殼、機架、機柜以及電子變壓器的生產,而HPSI則專注于定制和分類變壓器的制造。這種專業化的分工不僅增強了各自的市場競爭力,還為客戶提供了更加全面和專業的服務。
通過這些故事,我們可以看到Hammond公司在電子行業中的發展歷程充滿了挑戰與機遇。從初創時期的艱難起步,到成為行業先驅和全球領先企業,Hammond始終保持著對市場的敏銳洞察和持續創新的精神。
隨著公司規模的擴大和產品線的增加,ETI開始注重品質管理。公司建立了一套完善的品質管理體系,從原材料采購到生產過程再到成品檢驗都嚴格把關。同時,ETI還積極推行精益生產、六西格瑪等先進管理方法,提高了生產效率和產品質量。這些措施使ETI的產品在市場上獲得了良好的口碑和信譽。
為了進一步提升公司的競爭力和市場份額,Babcock積極尋求與國際知名企業的合作。通過與這些企業的技術交流和項目合作,Babcock不僅引進了先進的技術和管理經驗,還成功打開了國際市場的大門。隨著業務的不斷拓展,公司的規模和影響力也逐漸擴大。
面對全球氣候變化的嚴峻挑戰,FOSLINK公司積極響應國家關于綠色發展的號召,將綠色轉型作為企業發展的重要方向。公司致力于研發和生產低能耗、環保型的電子產品,并不斷優化生產工藝流程,減少資源消耗和環境污染。同時,FOSLINK還積極推廣綠色供應鏈管理,與供應商和客戶共同構建綠色、低碳的產業鏈生態。這一系列的綠色轉型舉措,不僅彰顯了FOSLINK的社會責任感,也為其贏得了更多消費者的青睞和支持。
Component General Inc公司的創立,標志著電子行業中一顆新星的升起。自XXXX年成立以來,公司始終致力于射頻/微波設計領域的研發與生產。起初,公司只有幾名創始人和一些基礎的研發設備,但他們憑借著對技術的熱情和執著,成功地開發出了首款高功率電阻器,這為公司后續的發展奠定了堅實的基礎。
3G、數字電視、音頻消費的應用刺激下,鍥而不舍的創新,種 類齊全的產品,與時俱進的定位,強烈持續的饑餓感,模擬IC領域 的各路英雄蓄勢待發,未來市場爭奪中將上演更精彩的劇目。 時刻保持“饑餓感” 饑餓感是什么?對于廠商而言,就 ...… 查看全部問答∨ |
|
MCU的未來之路如何發展? 微控制器(MCU)在實際應用、處理能力、架構以及與ASIC和SoC等其它半導體產品的融合方面已經有了很大的發展。那么,MCU未來還存在哪些挑戰、又將如何發展呢?微控制器用戶需要在越來越全球化及競爭日益激烈的環境中努力求生 ...… 查看全部問答∨ |
大家好,我想請教一個問題,我的低通濾波器工作正常,濾波效果還可以,信號直接接放大器,放大也正常,可把濾波器和放大器都接上后,放大器就不工作了,但濾波器能工作,誰知道這是什么原因啊?(放大器在濾波器后面),謝謝啊。下面是電路圖:… 查看全部問答∨ |
Infineon - New .XT-technology from Infineon Significantly Increases Lifetime of IGBT Modules and Opens the Path for Higher Junction Temperature up to 200°C Infineon Technologies introduced an innovative IGBT internal packaging te ...… 查看全部問答∨ |
|
燒程序時總是說"NO device found or device disconnected.please connect the device and press retry reconnect or press cancel to abort"請問這是什么原因啊? 仿真器和板子都是好的,是不是軟件的設置有問題?… 查看全部問答∨ |
1、網絡芯片換了,重新寫了網絡驅動,請問一下怎么樣把這個網絡驅動編譯到linux內核中去?內核是2.6.30版本的。2、板子上有兩個串口,有一個能用,另一個不能用,然后又重新寫了另一個串口的驅動,這樣把它編譯到內核中是不是就可以使用第二個串口 ...… 查看全部問答∨ |
本帖最后由 paulhyde 于 2014-9-15 02:59 編輯 求助MSP430F149,金屬物體探測定位器的程序代碼 … 查看全部問答∨ |