娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年01月26日(星期日)

2021年01月26日 | MSP430F5529 多通道ADC定時器觸發(fā)+DMA傳輸

發(fā)布者:leader4 來源: eefocus關(guān)鍵字:MSP430F5529  多通道ADC  定時器觸發(fā)  DMA傳輸 手機看文章 掃描二維碼
隨時隨地手機看文章

競賽之前學(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。
       接下是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é)果是符合推論的。


       所以這個ADC12定時器觸發(fā)配合DMA關(guān)于轉(zhuǎn)換周期的問題在實際應(yīng)用中還是需要注意的。


關(guān)鍵字:MSP430F5529  多通道ADC  定時器觸發(fā)  DMA傳輸 引用地址:MSP430F5529 多通道ADC定時器觸發(fā)+DMA傳輸

上一篇:msp430g2553串口接收字符串_接收指令
下一篇:MSP430 學(xué)習(xí) 基本數(shù)據(jù)類型淺談!

推薦閱讀

電子網(wǎng)消息,據(jù)重慶日報報道,1月23日,重慶市委書記陳敏爾,市委副書記、代市長唐良智會見了美國高通公司首席執(zhí)行官史蒂夫·莫倫科夫一行。陳敏爾說,重慶產(chǎn)業(yè)基礎(chǔ)好,大數(shù)據(jù)智能化發(fā)展前景廣闊,正大力實施以大數(shù)據(jù)智能化為引領(lǐng)的創(chuàng)新驅(qū)動發(fā)展戰(zhàn)略行動計劃,加快大數(shù)據(jù)智能化在產(chǎn)業(yè)融合、政府管理、民生服務(wù)等領(lǐng)域的應(yīng)用。希望高通公司積極參與重慶大數(shù)...
如今,世界正在逐步地向智能業(yè)務(wù)系統(tǒng)邁進,這些系統(tǒng)可以幫助或代表人類做出重要決策或執(zhí)行重要行動,同時提供個性化體驗。從電子商務(wù)系統(tǒng)到酒店管理系統(tǒng),人工智能聊天機器人是當(dāng)前商業(yè)技術(shù)領(lǐng)域的新興技術(shù),其關(guān)鍵優(yōu)勢在于可以隨時隨地進行互動,使企業(yè)能夠在全球范圍內(nèi)接觸到潛在客戶。這些智能軟件系統(tǒng)使用人工神經(jīng)網(wǎng)絡(luò)(ANN)來分析先前的對話和研究模...
工業(yè)機器人本體競爭格局:四大家族壟斷,國產(chǎn)品牌突圍工業(yè)機器人“四大家族”日本發(fā)那科、瑞士ABB、日本安川、德國KUKA,在全球高端應(yīng)用領(lǐng)域占有較高市占率。國內(nèi)品牌廣州啟帆、埃夫特、新松、埃斯頓、廣州數(shù)控、新時達享受市場增長紅利快速成長,正在國內(nèi)市場實現(xiàn)突圍。2016年,“四大家族”全球市場中的市占率合計達58%,占據(jù)了全球市場份額的超過半壁江...
投資界1月26日消息,天眼查App顯示,近日,上海擎朗智能科技有限公司發(fā)生工商變更,新增股東拉扎斯網(wǎng)絡(luò)科技(上海)有限公司。同時注冊資本從約218.34萬人民幣變更為約234.78萬人民幣。上海擎朗智能科技有限公司成立于2010年2月,法定代表人為李通。擎朗智能是智能機器人制造商和運營服務(wù)商,已實現(xiàn)智能配送機器人在國內(nèi)外餐飲、酒店、醫(yī)療場景陸續(xù)推廣...

史海拾趣

問答坊 | AI 解惑

人員定位系統(tǒng)基站

系統(tǒng)簡介   本系統(tǒng)采用國際標(biāo)準(zhǔn)ZigBee無線通訊技術(shù), 集人員定位,考勤管理和安全管理于一體。系統(tǒng)能夠及時、準(zhǔn)確地將管理區(qū)域內(nèi)各個區(qū)域人員情況動態(tài)反映到管理中心,使管理人員能夠隨時掌握管理區(qū)域內(nèi)人員的總數(shù)及分布情況,以便于進行更 ...…

查看全部問答∨

485通信問題

單片機大范圍通信一般采用485協(xié)議格式,查詢了485的IC 65HVN3082資料,里面“1/8負(fù)載--總線最大掛256個節(jié)點..."1/8負(fù)載是什么意思…

查看全部問答∨

無電池的電視遙控器

用過的電池一般都可以在遙控器上繼續(xù)使用,這就說明遙控器所消耗的電力非常小。既然如此,為何不讓遙控器自產(chǎn)電力呢?既環(huán)保又省錢。這款遙控器裝有磁鐵滑塊和線圈,用戶可以通過晃動讓遙控器發(fā)電。每次晃動都可以產(chǎn)生20~30mA的電流,足以供遙控器 ...…

查看全部問答∨

EVC下 如何得到視頻文件的信息?比如"MPG"、"AVI"等嵌入式常用視頻格式?

EVC下 如何得到視頻文件的信息? 比如"MPG"、"AVI"等嵌入式常用視頻格式? 我知道MP3可以通過讀ID3信息得到,但視頻文件就不知道了 我希望得到該文件的如下信息 1、視頻的分辨率,寬、高為多少像素?如768×576. 2、持續(xù)時間 3、幀速 ...…

查看全部問答∨

JPEG

我在用jpeg解碼.jpg圖片時,jpeg_read_scanlines只能夠讀取每一行的信息,所以解碼很慢。有什么方法可以提高解碼速度啊? …

查看全部問答∨

STM8S中斷程序中不能做乘法運算

                                 乘法運算在主程序中正常,也可作為函數(shù)在中斷中調(diào)用。但是直接在中斷中就異常,后發(fā)現(xiàn)問題出在*2的整數(shù)倍以外的運 ...…

查看全部問答∨

5V的LCD與430連接問題(T6963)?

在論壇上看了一下,主要有兩種連法: 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有問題?

用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ā)板 精華推薦

最新單片機文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 宁强县| 青龙| 高清| 获嘉县| 抚宁县| 宣汉县| 周宁县| 天台县| 永清县| 孝感市| 墨玉县| 穆棱市| 白朗县| 龙海市| 高要市| 玛多县| 平定县| 新安县| 梁平县| 庄浪县| 阜新| 玛多县| 丹巴县| 纳雍县| 巴楚县| 易门县| 合阳县| 尼勒克县| 饶河县| 泰宁县| 鹤山市| 万州区| 湄潭县| 洞口县| 宣汉县| 岱山县| 瑞安市| 南陵县| 怀宁县| 略阳县| 偃师市|