競賽之前學(xué)習(xí)了一下從沒有使用過的MSP430單片機,使用的是MSP430F5529的demo板,這塊板子應(yīng)該是MSP430中比較流行的一塊了。使用這塊板子實現(xiàn)了一個雙通道ADC的定時器觸發(fā)DMA傳輸,這里記錄一下給別人一點參考,同時也為以后需要用到的時候提供筆記。廢話不多說直接上源碼,代碼如下。
#include #include int data_buf0[100]; int data_buf1[100]; /** * main.c */ int main(void) { unsigned int i; WDTCTL = WDTPW | WDTHOLD; // stop watchdog timer P1DIR |= BIT0; // P1.0 output P1OUT &= ~BIT0; // P1.0 clear P5SEL |= BIT7; // P5.7/TB1 option select P5DIR |= BIT7; // Output direction P6SEL |= 0x03; // Enable A/D channel A0 A1 //Setup Timer B0 TBCCR0 = 0xfffe; TBCCR1 = 0x8000; TBCCTL1 = OUTMOD_3; // CCR1 set/reset mode TBEX0 = TBIDEX_7; //CLK/8 divide TBCTL = TBSSEL_2+MC_1+TBCLR + ID_3; // SMCLK, Up-Mode // Setup ADC12 ADC12CTL0 = ADC12ON+ADC12MSC+ADC12SHT0_8; // Turn on ADC12, extend sampling time // to avoid overflow of results ADC12CTL1 = ADC12SHS_3+ADC12CONSEQ_3; // Use sampling timer, repeated sequence ADC12MCTL0 = ADC12INCH_0; // ref+=AVcc, channel = A0 ADC12MCTL1 = ADC12INCH_1 + ADC12EOS; // ref+=AVcc, channel = A1 ADC12CTL0 |= ADC12ENC; // Enable conversions // Setup DMA COMMON DMACTL0 = DMA0TSEL_24 + DMA1TSEL_24; // ADC12IFGx triggered DMACTL4 = DMARMWDIS; // Read-modify-write disable // Setup DMA0 DMA0CTL &= ~DMAIFG; DMA0CTL = DMADT_4+DMAEN+DMADSTINCR_3; // Rpt single tranfer, Destination address is incremented. DMA0SZ = 100; // DMA0 size = 100 __data20_write_long((uintptr_t) &DMA0SA,(uintptr_t) &ADC12MEM0); // Source block address __data20_write_long((uintptr_t) &DMA0DA,(uintptr_t) &data_buf0[0]); // Setup DMA1 DMA1CTL &= ~DMAIFG; DMA1CTL = DMADT_4+DMAEN+DMADSTINCR_3; // Rpt single tranfer, Destination address is incremented. DMA1SZ = 100; // DMA0 size = 100 __data20_write_long((uintptr_t) &DMA1SA,(uintptr_t) &ADC12MEM1); // Source block address __data20_write_long((uintptr_t) &DMA1DA,(uintptr_t) &data_buf1[0]); while (1) { P1OUT ^= BIT0; for (i = 0; i < 50000; i++); } return 0; } 首先是IO的初始化配置,之后配置TB定時器,由于程序中沒有修改單片機的主頻,所以單片機的主頻默認(rèn)是1M的,TB定時器的時鐘源SMCLK也是1M,設(shè)置TBCCR0 = 65534,并且配置了TBEX0 = TBIDEX_7;和TBCTL 的ID_3字段,所以時鐘分頻為8*8=64分頻,相關(guān)的寄存器的位詳解請參考MSP430f5529的User’s Guide。所以最終的定時器定時頻率為1000000/64/65535=0.238,周期就是4.2s。 注意 所以這個ADC12定時器觸發(fā)配合DMA關(guān)于轉(zhuǎn)換周期的問題在實際應(yīng)用中還是需要注意的。
接下是ADC配置ADC12CTL0 = ADC12ON+ADC12MSC+ADC12SHT0_8;就是開啟ADC、多次采樣、設(shè)置周期。ADC12CTL1 = ADC12SHS_3+ADC12CONSEQ_3;設(shè)置觸發(fā)源為TB1_CCR1(ADC12SHS_3),工作在重復(fù)隊列轉(zhuǎn)換模式Repeat-sequence-of-channels(ADC12CONSEQ_3)。然后就是設(shè)置隊列使能ADC。
之后就是DMA配置了,先是配置DMA的共同寄存器部分。DMACTL0 = DMA0TSEL_24 + DMA1TSEL_24;設(shè)置DMA0和DMA1的觸發(fā)源,選擇24號觸發(fā)源,通過查看數(shù)據(jù)手冊可以知道24號觸發(fā)源對應(yīng)的就是ADC_12。然后就是特定DMA的配置了,這里就介紹一下DMA0的配置,DMA1的配置都是相同的。DMA0CTL &= ~DMAIFG;清除中斷標(biāo)志。DMA0CTL = DMADT_4+DMAEN+DMADSTINCR_3;重復(fù)單次傳輸Repeated single transfer(DMADT_4),開啟DMA,目標(biāo)地址遞增Destination address is incremented(DMADSTINCR_3)。然后設(shè)置傳輸?shù)臄?shù)據(jù)量、源地址、目標(biāo)地址即可。
在使用過程中我發(fā)現(xiàn)一個問題,那就是ADC的轉(zhuǎn)換周期 = 定時器周期 x ADC通道數(shù),例如我的定時器周期為4.2s,ADC通道為2,ADC轉(zhuǎn)換周期就是4.22=8.4s。開啟ADC轉(zhuǎn)換8.4s后DMA同時將兩個通道的ADC數(shù)據(jù)傳輸?shù)骄彺嬷小榇宋议_啟了3個ADC通道進行了實驗,TB的周期還是4.2s,MCU主頻1M,實驗結(jié)果如下所示。
可以看出程序運行了21s后緩存中還是只有一次轉(zhuǎn)換結(jié)果。使程序繼續(xù)運行看一下兩次轉(zhuǎn)換需要多久。
28s的時候已經(jīng)完成了兩次轉(zhuǎn)換,按照計算兩次轉(zhuǎn)換的時間為4.23*2=25.2s。結(jié)合上面一次轉(zhuǎn)換的時間,12.6<21<25.2<28,結(jié)果是符合推論的。
上一篇:msp430g2553串口接收字符串_接收指令
下一篇:MSP430 學(xué)習(xí) 基本數(shù)據(jù)類型淺談!
推薦閱讀
史海拾趣
Celduc Relais公司自創(chuàng)立之初,便以技術(shù)創(chuàng)新為核心驅(qū)動力。在公司的早期發(fā)展階段,研發(fā)團隊成功開發(fā)了一款具有顛覆性的繼電器產(chǎn)品,該產(chǎn)品在性能、穩(wěn)定性和壽命等方面均達到了行業(yè)領(lǐng)先水平。這一突破性的技術(shù)創(chuàng)新不僅為公司贏得了市場的廣泛認(rèn)可,也為后續(xù)的產(chǎn)品線擴展和技術(shù)升級奠定了堅實基礎(chǔ)。
在電子行業(yè)中,知識產(chǎn)權(quán)的保護尤為重要。成都成電硅海公司非常重視知識產(chǎn)權(quán)的申請和保護工作。公司成立了專門的知識產(chǎn)權(quán)部門,負(fù)責(zé)專利、商標(biāo)等知識產(chǎn)權(quán)的申請和管理。同時,公司還積極參與各種知識產(chǎn)權(quán)的維權(quán)行動,維護自身的合法權(quán)益。這種對知識產(chǎn)權(quán)的重視和保護,不僅提升了公司的核心競爭力,也為公司在電子行業(yè)的發(fā)展提供了有力的法律保障。
FINTEK公司成立于2000年代初,正值半導(dǎo)體技術(shù)快速發(fā)展的時期。公司初創(chuàng)時,便聚焦于開發(fā)高性能的模擬信號處理器(ASP)芯片。創(chuàng)始人帶領(lǐng)團隊,經(jīng)過數(shù)年的不懈努力,成功研發(fā)出了一款具有創(chuàng)新性的ASP芯片,該芯片在功耗、信噪比和信號處理速度上均優(yōu)于市場同類產(chǎn)品。這一技術(shù)突破不僅為公司贏得了首輪融資,也吸引了眾多行業(yè)巨頭的關(guān)注,為FINTEK在電子行業(yè)的初步立足奠定了堅實的基礎(chǔ)。
在電子科技日新月異的今天,F(xiàn)ermionics Lasertech Inc公司由一群熱衷于激光技術(shù)研究的科學(xué)家和工程師創(chuàng)立。他們致力于開發(fā)新型激光器,以滿足電子制造行業(yè)對高精度加工的需求。在經(jīng)歷無數(shù)次實驗和失敗后,他們終于研發(fā)出了具有劃時代意義的超精密激光切割設(shè)備,這一技術(shù)突破為公司贏得了第一筆大額訂單,也為公司的后續(xù)發(fā)展奠定了堅實的基礎(chǔ)。
廣東奧科公司深知品質(zhì)是企業(yè)生存和發(fā)展的關(guān)鍵。因此,公司始終將品質(zhì)管理放在首位,從原材料采購到生產(chǎn)流程控制,再到產(chǎn)品出廠檢驗,每一個環(huán)節(jié)都嚴(yán)格把控品質(zhì)。同時,公司還建立了完善的品質(zhì)管理體系和持續(xù)改進機制,通過不斷優(yōu)化生產(chǎn)工藝和提升產(chǎn)品質(zhì)量,確保每一款產(chǎn)品都能滿足客戶的期望和需求。
系統(tǒng)簡介 本系統(tǒng)采用國際標(biāo)準(zhǔn)ZigBee無線通訊技術(shù), 集人員定位,考勤管理和安全管理于一體。系統(tǒng)能夠及時、準(zhǔn)確地將管理區(qū)域內(nèi)各個區(qū)域人員情況動態(tài)反映到管理中心,使管理人員能夠隨時掌握管理區(qū)域內(nèi)人員的總數(shù)及分布情況,以便于進行更 ...… 查看全部問答∨ |
|
EVC下 如何得到視頻文件的信息?比如"MPG"、"AVI"等嵌入式常用視頻格式? EVC下 如何得到視頻文件的信息? 比如"MPG"、"AVI"等嵌入式常用視頻格式? 我知道MP3可以通過讀ID3信息得到,但視頻文件就不知道了 我希望得到該文件的如下信息 1、視頻的分辨率,寬、高為多少像素?如768×576. 2、持續(xù)時間 3、幀速 ...… 查看全部問答∨ |
|
乘法運算在主程序中正常,也可作為函數(shù)在中斷中調(diào)用。但是直接在中斷中就異常,后發(fā)現(xiàn)問題出在*2的整數(shù)倍以外的運 ...… 查看全部問答∨ |
在論壇上看了一下,主要有兩種連法: 1、通過4245等轉(zhuǎn)換芯片連接,但是要多用一個I/O口。 2、通過電阻連接,430輸出高電平為3.3V,高于T6963C的輸入高電平門限(VDD-2.2);T6963C輸出高電平(5V)時通過電阻分壓到430I/O安全電壓范圍內(nèi)。 兩種方 ...… 查看全部問答∨ |
用AD6.9畫的板子,前面幾張導(dǎo)出的Gerber文件用CAM350查看都是OK的,今天畫了個有槽孔的板子,導(dǎo)出來發(fā)現(xiàn)鉆孔層被放大了,沒有落在焊盤上,整體偏移出了板子,請教下各位大俠,是啥問題?導(dǎo)出Gerber時的設(shè)定步驟應(yīng)該沒問題,前面幾張板子都OK的。… 查看全部問答∨ |
啟動代碼里 到底是怎么初始化內(nèi)存,怎么初始化堆棧的,通過什么實現(xiàn),實現(xiàn)的結(jié)果是什么?看了很多啟動代碼的解釋還是不太懂… 查看全部問答∨ |
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦
- 英飛凌微控制器:以全新實惠套件和強大開發(fā)環(huán)境為開發(fā)者提供支持
- iTOP-i.MX6開發(fā)板設(shè)備數(shù)驅(qū)動Menuconfig的用法
- 迅為IMX6ULL開發(fā)板Qt for Android搭建開發(fā)環(huán)境
- 迅為i.MX8M mini開發(fā)板Windots QT系統(tǒng)開發(fā)環(huán)境搭建
- 迅為IMX8MM開發(fā)板Yocto系統(tǒng)使用Gstarwmra(一)
- 迅為IMX8M mini開發(fā)板Linix系統(tǒng)修改默認(rèn)屏幕
- iTOP-4412開發(fā)板支持4G以上文件系統(tǒng)擴展
- 迅為IMX8MM開發(fā)板Yocto系統(tǒng)設(shè)置開機自啟動
- 迅為IMX6Q開發(fā)板 Buildroot文件系統(tǒng)mqtt測試
- 復(fù)旦大學(xué)在集成電路領(lǐng)域獲關(guān)鍵突破!每秒存取25億次,史上最快!
- 星閃強勢入局,會給UWB與藍牙定位帶來哪些沖擊?
- 又兩款旗艦新車搭載星閃車鑰匙!誰在引爆這波汽車連接革命?
- 榜單首發(fā)!域控SerDes處于市場爆發(fā)周期,哪些供應(yīng)商正在領(lǐng)跑市場
- 英特爾? 具身智能大小腦融合方案發(fā)布:構(gòu)建具身智能落地新范式
- 車載UWB雷達技術(shù):有哪些優(yōu)勢?
- 嵐圖開啟L3智駕:天元智能架構(gòu)技術(shù)解讀
- 德州儀器如何通過7000多種車規(guī)芯片,引領(lǐng)汽車產(chǎn)業(yè)的創(chuàng)新
- 2025年上海國際車展技術(shù)前瞻 – 智駕安全(環(huán)境感知)
- 史上最嚴(yán)動力電池國標(biāo)解讀:爆燃零容忍,倒逼廠家不打嘴炮真研發(fā)
- 觀看TI IOT解決方案研討會 答題即可贏取更多精美好禮!
- 答題有好禮 | 是德科技《優(yōu)化物聯(lián)網(wǎng)設(shè)備電池續(xù)航時間的4個技巧》
- 報名STM32全國巡回研討會,打卡輕松得ST開發(fā)板
- 安森美半導(dǎo)體移動與可穿戴設(shè)備解決方案下載有禮!
- 點評《深入淺出玩TI Sitara》,精彩好禮等你拿!
- 英特爾 SoC FPGA 開發(fā)者論壇 (ISDF) 預(yù)約報名享好禮!
- 下載有禮:2017年泰克亞太專家大講堂第二期: 100G/200G/400G通訊標(biāo)準(zhǔn)發(fā)展趨勢及解決方案
- 有獎直播預(yù)報名|與英飛凌一同探尋網(wǎng)絡(luò)攝像機的黑科技
- 泰克MDO系列:1招搞定6大儀器,輕松穿越模擬、數(shù)字、頻域測量