![TMS320F28x入門_第1頁(yè)](http://file4.renrendoc.com/view/9378cc07a346e64931f0aecbca748336/9378cc07a346e64931f0aecbca7483361.gif)
![TMS320F28x入門_第2頁(yè)](http://file4.renrendoc.com/view/9378cc07a346e64931f0aecbca748336/9378cc07a346e64931f0aecbca7483362.gif)
![TMS320F28x入門_第3頁(yè)](http://file4.renrendoc.com/view/9378cc07a346e64931f0aecbca748336/9378cc07a346e64931f0aecbca7483363.gif)
![TMS320F28x入門_第4頁(yè)](http://file4.renrendoc.com/view/9378cc07a346e64931f0aecbca748336/9378cc07a346e64931f0aecbca7483364.gif)
![TMS320F28x入門_第5頁(yè)](http://file4.renrendoc.com/view/9378cc07a346e64931f0aecbca748336/9378cc07a346e64931f0aecbca7483365.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、目錄 TOC o 1-3 h z u HYPERLINK l _Toc513128267 1.DSP學(xué)習(xí)步驟 PAGEREF _Toc513128267 h 2 HYPERLINK l _Toc513128268 2.搞明白幾個(gè)問(wèn)題 PAGEREF _Toc513128268 h 2 HYPERLINK l _Toc513128269 3.CCS6 創(chuàng)建新工程 PAGEREF _Toc513128269 h 3 HYPERLINK l _Toc513128270 A.教程一 PAGEREF _Toc513128270 h 3 HYPERLINK l _Toc513128271 B.教程二 PA
2、GEREF _Toc513128271 h 7 HYPERLINK l _Toc513128272 C.仿真環(huán)境構(gòu)建 PAGEREF _Toc513128272 h 13 HYPERLINK l _Toc513128273 4.TMS320F28x寄存器配置總結(jié) PAGEREF _Toc513128273 h 15 HYPERLINK l _Toc513128274 基本開局初始化 PAGEREF _Toc513128274 h 15 HYPERLINK l _Toc513128275 1.時(shí)鐘與系統(tǒng)控制 PAGEREF _Toc513128275 h 16 HYPERLINK l _Toc5
3、13128276 2.中斷控制PIE PAGEREF _Toc513128276 h 21 HYPERLINK l _Toc513128277 3.GPIO PAGEREF _Toc513128277 h 24 HYPERLINK l _Toc513128278 4.ADC PAGEREF _Toc513128278 h 27 HYPERLINK l _Toc513128279 5.增強(qiáng)型脈寬調(diào)制器ePWM PAGEREF _Toc513128279 h 29 HYPERLINK l _Toc513128280 6.HRPWM PAGEREF _Toc513128280 h 32 HYPERL
4、INK l _Toc513128281 7.SCI PAGEREF _Toc513128281 h 36 HYPERLINK l _Toc513128282 8.SPI PAGEREF _Toc513128282 h 40 HYPERLINK l _Toc513128283 9.CAN PAGEREF _Toc513128283 h 42 HYPERLINK l _Toc513128284 10.CMD文件 PAGEREF _Toc513128284 h 49 HYPERLINK l _Toc513128285 5.TMS320F28035 DEMO板實(shí)驗(yàn) PAGEREF _Toc513128
5、285 h 51 HYPERLINK l _Toc513128286 1.GPIO 實(shí)驗(yàn) PAGEREF _Toc513128286 h 51 HYPERLINK l _Toc513128287 2.定時(shí)器中斷實(shí)驗(yàn) PAGEREF _Toc513128287 h 52 HYPERLINK l _Toc513128288 3.PWM占空比調(diào)節(jié) PAGEREF _Toc513128288 h 53 HYPERLINK l _Toc513128289 4.ADC實(shí)驗(yàn) PAGEREF _Toc513128289 h 54 HYPERLINK l _Toc513128290 5.SPI實(shí)驗(yàn) PAGERE
6、F _Toc513128290 h 56 HYPERLINK l _Toc513128291 6.SCI實(shí)驗(yàn) PAGEREF _Toc513128291 h 57 HYPERLINK l _Toc513128292 6.經(jīng)驗(yàn)&教訓(xùn) PAGEREF _Toc513128292 h 62讀前須知:本人在此之前完全沒(méi)接觸過(guò)DSP,這是我學(xué)習(xí)過(guò)程中所做的筆記,直到最后能做些各個(gè)模塊的一些簡(jiǎn)單配置實(shí)現(xiàn)簡(jiǎn)單的功能。希望能給新手一些幫助,與君共勉!DSP學(xué)習(xí)步驟大體上看一遍書,把大體的知識(shí)了解一下。在學(xué)習(xí)DSP之前,我覺(jué)得應(yīng)該需要去明白DSP能干什么,所以你一定要看看DATASHEET,看看DSP的外設(shè)和資
7、源,看看你能做啥。 就是看例子了,例子是關(guān)鍵,例子里有你學(xué)的所有的東西,不建議大家直接拿例程來(lái)做試驗(yàn),因?yàn)槟菢幽鉓CU的結(jié)構(gòu)沒(méi)有把握,你把例程跑得再好,那也不是你的東西,一定要自己寫,例程只能作為參照,一定要一個(gè)字母一個(gè)字母地去寫程序??蠢?在自己編寫自己需要功能的代碼時(shí)要看看已有的例程,看看例程里的各種寄存器是怎么配置的,配置時(shí)又是怎么實(shí)現(xiàn)的,根據(jù)看懂的編寫自己想要的,然后跑跑自己的程序看和已有的例程有什么異同,是不是自己想要的。當(dāng)然,調(diào)試環(huán)節(jié)是最難的一個(gè)環(huán)節(jié),這個(gè)過(guò)程中會(huì)出現(xiàn)很多意想不到的問(wèn)題,只能慢慢摸索慢慢前進(jìn)了。 這次你再拿出一本書來(lái)看,這次是有針對(duì)性的看,比如你做的spi的,你就
8、直接看spi那張,一邊看例子一邊看書,這樣你就可以把一些重要的寄存器給記住了。 把存儲(chǔ)器映射結(jié)構(gòu)搞清楚說(shuō)的具體點(diǎn)就是dsp內(nèi)到底有那些存儲(chǔ)器(ram,rom,flash,etc),這些存儲(chǔ)器到底是如何分配的,這個(gè)可以參考相關(guān)的.cmd文件的寫法,它定義了存儲(chǔ)器映射和輸入輸出段的位置 編譯器的堆棧操作,就是中斷或是子程序調(diào)用時(shí),系統(tǒng)自己的堆棧操作。2407有一個(gè)8級(jí)硬件堆棧,而2812沒(méi)有,這個(gè)區(qū)別比較大,所以在編一邊針對(duì)堆棧操作的程序(eg. rtos)時(shí)就要特別注意了。 中斷系統(tǒng)每個(gè)mcu的中斷系統(tǒng)搞清楚了,會(huì)給編程帶來(lái)很大的便利,所以一定要對(duì)所用的mcu的中斷過(guò)程了解的清清楚楚。 開發(fā)環(huán)境
9、建立完了要熟悉開發(fā)流程,就是說(shuō)你有一個(gè)Idea,怎么把這個(gè) Idea在目標(biāo)板上實(shí)現(xiàn),先做什么后做什么,這個(gè)一定要想清楚。開發(fā)板,仿真器是必要的,它能帶給我們更加直觀的感受,有空去TI官網(wǎng)轉(zhuǎn)轉(zhuǎn),里面東西還是挺多的。另外一個(gè)好的程序模板也是很關(guān)鍵的,TI官網(wǎng)上有很多例程,結(jié)構(gòu)嚴(yán)謹(jǐn)并且最大的發(fā)揮了CCS的功能,建議先搞懂后再依據(jù)此創(chuàng)建自己的模板程序.還有就是芯片的DATASHEET。得對(duì)C熟悉,但會(huì)C語(yǔ)言并不能說(shuō)明你會(huì)編程,編程有結(jié)構(gòu)設(shè)計(jì)的問(wèn)題,C語(yǔ)言只是工具,看不懂的就好好去想,想通了就發(fā)現(xiàn)自己又上了一個(gè)臺(tái)階;數(shù)據(jù)結(jié)構(gòu),合適的數(shù)據(jù)結(jié)構(gòu)會(huì)使自己的程序編寫變得結(jié)構(gòu)清楚而且“容易”。 寫程序要規(guī)范,這會(huì)
10、簡(jiǎn)便很多操作,使編譯得以優(yōu)化,比如相關(guān)的文件定義要放在相應(yīng)的頭文件里,全局變量等的定義最好GlobalVariableDefs.c里,相應(yīng)的中斷程序要放在default_ls中。 搞明白幾個(gè)問(wèn)題什么是DSP芯片,DSP芯片有什么功能和主要特點(diǎn)如何利用這些功能實(shí)現(xiàn)自己的目標(biāo),對(duì)芯片的基本操作和簡(jiǎn)單程序的運(yùn)行如何在DSP上完成操作系統(tǒng)的移植如何在DSP上完成算法的移植和優(yōu)化CCS6 創(chuàng)建新工程教程一首先點(diǎn)擊 project-New CCS Project選擇器件和創(chuàng)建工程名找到要用的文件 headers 和 common,是安裝 controlSUIT(看截圖) 復(fù)制到新建工程的目錄 此時(shí) CCS
11、 會(huì)自動(dòng)將新添的文件加到項(xiàng)目瀏覽器中編譯,然后發(fā)現(xiàn)好多錯(cuò)誤。不能打開頭文件,因?yàn)檫€沒(méi)有將頭文件添加到工程里面,項(xiàng)目瀏覽器只是將文件顯示出來(lái)了已。右鍵項(xiàng)目瀏覽器中的項(xiàng)目名,打開屬性選擇 dir to include 那個(gè)框的加號(hào)選擇 WorkSpace選擇 common 和 headers 的 include,然后 OK,OK,編譯,然后更多的錯(cuò)誤。,不過(guò)錯(cuò)誤的類型變了,這些錯(cuò)誤和內(nèi)存分配有關(guān),和內(nèi)存有關(guān)的就是 cmd 文件了刪除 common 下 cmd 里的所有文件編譯,然后還是很多錯(cuò)誤,不過(guò)一看發(fā)現(xiàn)錯(cuò)誤和文件重定義有關(guān)看看是哪個(gè)文件重定義了刪除這兩個(gè)文件,編譯其中可能會(huì)碰到一個(gè)關(guān)于 DSP
12、2803x_Headers_nonBIOS.cmd(無(wú)操作系統(tǒng))和DSP2803x_Headers_BIOS.cmd(有操作系統(tǒng))的問(wèn)題,將 DSP2803x_Headers_BIOS.cmd 刪除即可(我們的是無(wú)操作系統(tǒng))。教程二CCS6 下載地址:/tool/ccstudio F2812 的 C 語(yǔ)言頭文件 下載地址: HYPERLINK /lit/zip/sprc097 /lit/zip/sprc097 HYPERLINK /lit/zip/sprc097 安裝后的文件結(jié)構(gòu)樣式如下: 新建空的工程點(diǎn)擊Project-New CCS Project在 New CCS Project 窗口,
13、按需填寫以下內(nèi)容后按Finish完成新建空的工程 新建完成后的工程,結(jié)構(gòu)如下: 點(diǎn)擊左上方的編譯按鈕,應(yīng)該能夠順利的編譯通過(guò),但是會(huì)出現(xiàn)一個(gè)警告。 工程配置-添加系統(tǒng)的頭文件 在工程名上右擊,添加兩個(gè)文件夾,分別名為 source 和 include。 打開tidcsc28DSP281xv120文件夾,將DSP281x_headersinclude中的所有頭文件復(fù)制到剛剛新建的 include 目錄。 打開tidcsc28DSP281xv120文件夾,將DSP281x_commoninclude中的所有頭文件復(fù)制到剛剛新建的 include 目錄(會(huì)提示文件已存在,覆蓋即可)。 此時(shí),工程文件
14、夾的結(jié)構(gòu)如圖所示: 配置工程右擊工程文件名,選擇Properties 更改 include 的選項(xiàng)在新彈出的窗口中選擇Workspace: 然后選擇對(duì)應(yīng)工程的include目錄:更改鏈接選項(xiàng)中的Base option: 將 Stack 中填充合適的數(shù)值,默認(rèn)為空(也就是上文中編譯的時(shí)候出現(xiàn)的警告):完成以上的設(shè)置后,編譯應(yīng)該沒(méi)有任何的錯(cuò)誤和警告:額外的設(shè)置添加 C99 支持:可板上執(zhí)行的工程配置 根據(jù)上文的配置過(guò)程,雖然代碼能夠正常的通過(guò)編譯,但是卻沒(méi)有任何的實(shí)際功能。這里,以點(diǎn)亮運(yùn)行燈(即主循環(huán)執(zhí)行過(guò)程中,固定間隔點(diǎn)亮的燈)為例,介紹可用的代碼的配置過(guò)程。 添加必須的頭文件代碼 在main函
15、數(shù)中,添加以下的頭文件: #include DSP281x_Device.h #include DSP281x_Examples.h 其中,DSP281x_Device.h 提供了對(duì)應(yīng)的 CPU 寄存器的結(jié)構(gòu)體信息,DSP281x_Examples.h 主要提供了一個(gè)納秒級(jí)的延時(shí)函數(shù)DELAY_US(A)。不過(guò),為了使用此函數(shù),還需要將一個(gè)匯編代碼文件添加到工程中: 在項(xiàng)目文件名稱上右擊,選擇Add Files,打開的窗口中選擇DSP281x_commonsource文件夾中的DSP281x_usDelay.asm。然后手動(dòng)將 asm 文件拖動(dòng)到 source目錄下。 此時(shí),項(xiàng)目文件夾的組織結(jié)
16、構(gòu)如圖,添加必要的源文件 : 添加DSP281x_headerssource目錄下的DSP281x_GlobalVariableDefs.c以指定所有系統(tǒng)結(jié)構(gòu)體的存儲(chǔ)位置。 添加DSP281x_commonsource目錄下的DSP281x_SysCtrl.c以初始化系統(tǒng)的控制選項(xiàng),包括 PLL,看門狗,預(yù)分頻。 添加DSP281x_commonsource目錄下的DSP281x_Gpio.c以初始化系統(tǒng)的 GPIO 口。 添加DSP281x_commonsource目錄下的DSP281x_PieCtrl.c 以初始化 PIE 控制器。 添加DSP281x_commonsource目錄下的 D
17、SP281x_PieVect.c以初始化 PIE 向量表。 添加DSP281x_commonsource目錄下的DSP281x_InitPeripherals.c以初始化其他外設(shè)。 添加DSP281x_commonsource目錄下的DSP281x_DefaultIsr.c以使用默認(rèn)的中斷函數(shù)。 添加 cmd 文件 本程序非 TI的 BIOS系統(tǒng)應(yīng)用,所以需要添加DSP281x_headerscmd目錄下的DSP281x_Headers_nonBIOS.cmd。 到此,可以嘗試編譯工程,應(yīng)該能夠正常的編譯通過(guò),且沒(méi)有任何的警告。目錄結(jié)構(gòu)應(yīng)該如下所示(分別是頭文件,源文件和鏈接文件): 第一個(gè)可
18、執(zhí)行程序點(diǎn)亮 LED 燈 編輯 main 函數(shù),將 main 函數(shù)修改成如下的內(nèi)容: #include DSP281x_Device.h / 添加必要的頭文件 #include DSP281x_Examples.h / 添加必要的頭文件 int main(void) InitSysCtrl(); InitGpio(); DINT; InitPieCtrl(); IER = 0 x0000; IFR = 0 x0000; InitPieVectTable(); EINT; ERTM; for(;) main 函數(shù)雖然是 int 類型的,但是這里不需要結(jié)尾的return 0;,否則在編譯時(shí)會(huì)提示一
19、個(gè)警告。 編輯DSP281x_Gpio.c,修改 InitGpio()函數(shù): void InitGpio(void) EALLOW; / GpioMuxRegs 受到保護(hù),需要EALLOW后才能配置 GpioMuxRegs.GPAMUX.bit.T1PWM_GPIOA6 = 0; / 設(shè)置為GPIO口 GpioMuxRegs.GPADIR.bit.GPIOA6 = 1; / 配置為輸出引腳 EDIS; 仿真環(huán)境構(gòu)建在安裝完成CCS6.0和官方學(xué)習(xí)套件CONTROL SUITE后,并且可以順利通過(guò)編譯,這時(shí)需要連接上仿真器進(jìn)一步學(xué)習(xí)寄存器,在仿真中不斷學(xué)習(xí)基本的操作內(nèi)容購(gòu)買TL-XDS100V3
20、 / V2 /V1由于CCS5 以上的版本都內(nèi)置了這款驅(qū)動(dòng),故僅需在創(chuàng)建工程時(shí)選擇正確的仿真器,并添加gel文件,如圖 編譯成功后點(diǎn)擊debug,也就是那個(gè)小昆蟲,進(jìn)去后和其他單片機(jī)仿真程序類似,如若失敗,請(qǐng)仔細(xì)檢查端口引腳定義和環(huán)境配置CCS內(nèi)置串口助手,可通過(guò)其對(duì)串口進(jìn)行監(jiān)測(cè),以便學(xué)習(xí)CCS可通過(guò)仿真查看內(nèi)部寄存器變量,前提是要知道該變量的地址,可通過(guò)在程序中右鍵選中變量add watch expression ,即可在expression中查看相應(yīng)變量的值得變化可通過(guò)在Tools graph-single time 對(duì)一變量查看波形,要設(shè)置好對(duì)應(yīng)的Buffer size和DSP DATA
21、 TYPE 。采樣速率選擇100Hz 填對(duì)地址。如圖設(shè)置好即可觀察TMS320F28x寄存器配置總結(jié)基本開局初始化InitSysCtrl();/系統(tǒng)時(shí)鐘設(shè)置DINT;/禁止所有中斷InitPieCtrl();/初始化中斷向量控制寄存器IER = 0 x0000;/關(guān)閉CPU中斷IFR = 0 x0000;/清除所有中斷標(biāo)志位InitPieVectTable();/初始化中斷向量表下面的寄存器受到EALLOW保護(hù):器件仿真寄存器Flash寄存器CSM寄存器PIE向量表系統(tǒng)控制寄存器GPIO MUX寄存器時(shí)鐘與系統(tǒng)控制2803x系列DSP有兩個(gè)內(nèi)部時(shí)鐘源(INTOSC1和INTOSC2),可以不需
22、要外部時(shí)鐘。同時(shí),也具有PLL時(shí)鐘模塊。一共有4種時(shí)鐘源可供選擇: 1) INTOSC1(10MHz) 內(nèi)部時(shí)鐘源1(INTOSC1),此時(shí)鐘提供給看門狗塊模塊,內(nèi)核和CPU定時(shí)器2 。 時(shí)鐘頻率默認(rèn)為10MHz,可以通過(guò)INTOSCnTRIM寄存器修改頻率。 2) INTOSC2(10MHz) 功能與INTOSC1是一樣的。 3) 外部晶體振蕩器IntOsc0Sel使用外部晶體振蕩器給芯片提供時(shí)鐘,晶振連接于X1/X2 腳。 4) 外部時(shí)鐘源 如果不使用外部晶振作為時(shí)鐘源,可以選擇這種模式。時(shí)鐘從外部時(shí)鐘源的XCLKIN引腳輸入生成。 注意:XCLKIN復(fù)用于GPIO19或GPIO38腳。可
23、以通過(guò)XCLK寄存器的XCLKINSEL位選擇是GPIO19還是GPIO38作為XCLKIN輸入。CLKCTL(XCLKINOFF)為0時(shí),不使能此時(shí)鐘。如果時(shí)鐘源不使用或作為GPIO引腳時(shí),用戶應(yīng)該在啟動(dòng)引導(dǎo)時(shí)禁用。 系統(tǒng)時(shí)鐘的初始化在main函數(shù)的最初位置初始化DSP,即調(diào)用void InitialDSP(void)函數(shù)。void InitSysCtrl(void)EALLOW;SysCtrlRegs.WDCR= 0 x0068; /關(guān)看門狗EDIS;EALLOW;SysCtrlRegs.PCLKCR0.bit.ADCENCLK = 1; / 關(guān)ADC時(shí)鐘(*Device_cal)();
24、/ 用于校準(zhǔn)內(nèi)部振蕩器和ADC,這個(gè)函數(shù)在boot ROM的時(shí)候,芯片會(huì)自動(dòng)調(diào)用。SysCtrlRegs.PCLKCR0.bit.ADCENCLK = 0; / 啟動(dòng)ADC時(shí)鐘EDIS;Xtal1scSel (); /選擇內(nèi)部晶振XTALOSC1作為系統(tǒng)時(shí)鐘源, 且關(guān)閉所有未使用的時(shí)鐘以節(jié)省電源。 InitPll(12,1); / 60 MHz = (10MHz * 12)/2InitPeripheralClocks(); /初始化外設(shè)時(shí)鐘void InitPeripheralClocks(void) EALLOW; GpioCtrlRegs.GPAMUX2.bit.GPIO18 = 3; /
25、 GPIO18 = XCLKOUT SysCtrlRegs.LOSPCP.all = 0 x0002;/低速外設(shè)時(shí)鐘(LSPCLK)速率/4 SysCtrlRegs.XCLK.bit.XCLKOUTDIV=2; / Set XCLKOUT = SYSCLKOUT/1 SysCtrlRegs.PCLKCR0.bit.ADCENCLK = 1; / ADC SysCtrlRegs.PCLKCR3.bit.COMP1ENCLK = 1; / COMP1 SysCtrlRegs.PCLKCR3.bit.COMP2ENCLK = 1; / COMP2 SysCtrlRegs.PCLKCR3.bit.CP
26、UTIMER0ENCLK = 1; / CPU Timer-0 SysCtrlRegs.PCLKCR3.bit.CPUTIMER1ENCLK = 1; / CPU Timer-1 SysCtrlRegs.PCLKCR3.bit.CPUTIMER2ENCLK = 1; / CPU Timer-2 SysCtrlRegs.PCLKCR1.bit.ECAP1ENCLK = 1; / eCAP1 SysCtrlRegs.PCLKCR1.bit.EPWM1ENCLK = 1; / EPWM1 SysCtrlRegs.PCLKCR1.bit.EPWM2ENCLK = 1; / EPWM2 SysCtrlR
27、egs.PCLKCR1.bit.EPWM3ENCLK = 1; / EPWM3 SysCtrlRegs.PCLKCR1.bit.EPWM4ENCLK = 1; / EPWM4 SysCtrlRegs.PCLKCR3.bit.GPIOINENCLK = 1; / GPIO SysCtrlRegs.PCLKCR0.bit.HRPWMENCLK=1; / HRPWM SysCtrlRegs.PCLKCR0.bit.I2CAENCLK = 1; / I2C SysCtrlRegs.PCLKCR0.bit.SCIAENCLK = 1; / SCI-A SysCtrlRegs.PCLKCR0.bit.SP
28、IAENCLK = 1; / SPI-A SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1; / Enable TBCLK within the EPWM EDIS;Cpu定時(shí)器設(shè)置定時(shí)器定時(shí)時(shí)間的公式計(jì)算 以上寄存器測(cè)值在配置函數(shù)ConfigCpuTimer(struct CPUTIMER_VARS *Timer, float Freq, float Period)中設(shè)置。形參Timer為第幾位定時(shí)器,F(xiàn)req為定時(shí)頻率,Period為計(jì)時(shí)周期。 假若Freq為15,Period為1000000,則時(shí)間t = 1*15*1000000/150M = 0.1s (系統(tǒng)
29、時(shí)鐘頻率為150M)。不過(guò)這個(gè)算式的成立是有條件的,這個(gè)條件就是以下兩條語(yǔ)句:Timer-RegsAddr-TPR.all = 0Timer-RegsAddr-TPRH.all = 0上文曾提及,定時(shí)器的計(jì)數(shù)時(shí)鐘是有預(yù)分頻寄存器TPRH:TPR決定的。CpuTimerxRegs.TPR.all = 0,CpuTimerxRegs.TPRH.all = 0這兩句話決定了1個(gè)時(shí)鐘源周期為定時(shí)器的時(shí)鐘周期(即一個(gè)SYSCLKOUT,TIMH:TIM減1),若CpuTimerxRegs.TPR.all = y,CpuTimerxRegs.TPRH.all = 0,則計(jì)y+1個(gè)時(shí)鐘周期為定時(shí)器的時(shí)鐘周期
30、。X表示0,1,2中的任意值(任意定時(shí)器)。因此,真正的定時(shí)時(shí)間為:time =TPRH:TPR/SYSCLKOUT*Freq*Peroid。例如:ConfigCpuTimer(&CpuTimer0, 59, 100 00000); 假設(shè)系統(tǒng)時(shí)鐘為60M定時(shí)時(shí)間為:60*1M/60M=1s 只有當(dāng)TPRH:TPR=0時(shí),SYSCLKOUT直接作為TIMH:TIM的時(shí)鐘周期,time =Freq*Peroid/SYSCLKOUT。另外,在定時(shí)器配置函數(shù)中,Timer-RegsAddr-TCR.bit.TSS = 1 表示停止定時(shí)器 ;Timer-RegsAddr-TCR.bit.TRB = 1
31、表示重裝定時(shí)器; Timer-RegsAddr-TCR.bit.FREE = 1 表示定時(shí)器自由運(yùn)行; Timer-RegsAddr-TCR.bit.TIE = 1 表示使能定時(shí)器中斷。如果要利用定時(shí)器產(chǎn)生一定周期的時(shí)間中斷,別忘了在主函數(shù)中設(shè)置響應(yīng)的中斷向量。啟動(dòng)定時(shí)器開始運(yùn)行15TIF定時(shí)器中斷標(biāo)志位,進(jìn)入中斷為0,寫1清除掉14TIE定時(shí)器中斷使能位,0禁止定時(shí)器中斷,1使能1312,96,03保留-1110FREE SOFT仿真控制器5TRB定時(shí)器重新裝載位,始終未0,寫1重新裝載PEDH:PRD4TSS定時(shí)器起??刂莆?,正在運(yùn)行,通過(guò)向此位寫1,停止定時(shí)器CpuTimer0Regs
32、.TCR.all = 0 x4001; /0100 0000 0000 0001設(shè)置TSS位為0位Timer-RegsAddr-TCR.bit.TSS = 0 /表示開始定時(shí)器void InitCpuTimers(void) /*定時(shí)器中斷設(shè)置*/ CpuTimer0.RegsAddr = &CpuTimer0Regs; CpuTimer0Regs.PRD.all = 0 xFFFFFFFF; / 將定時(shí)器初始化為最大值/ Initialize pre-scale counter to divide by 1 (SYSCLKOUT):CpuTimer0Regs.TPR.all = 0;CpuT
33、imer0Regs.TPRH.all = 0;CpuTimer0Regs.TCR.bit.TSS = 1; / 確保定時(shí)器已經(jīng)停止CpuTimer0Regs.TCR.bit.TRB = 1;/重新裝在定時(shí)器定是周期CpuTimer0.InterruptCount = 0; /重設(shè)中斷次數(shù)計(jì)數(shù)器CpuTimer1.RegsAddr = &CpuTimer1Regs;CpuTimer2.RegsAddr = &CpuTimer2Regs;/ Initialize timer period to maximum:CpuTimer1Regs.PRD.all = 0 xFFFFFFFF;CpuTimer
34、2Regs.PRD.all = 0 xFFFFFFFF; / Initialize pre-scale counter to divide by 1 (SYSCLKOUT):CpuTimer1Regs.TPR.all = 0;CpuTimer1Regs.TPRH.all = 0;CpuTimer2Regs.TPR.all = 0;CpuTimer2Regs.TPRH.all = 0; / Make sure timers are stopped:CpuTimer1Regs.TCR.bit.TSS = 1;CpuTimer2Regs.TCR.bit.TSS = 1;/ Reload all co
35、unter register with period value:CpuTimer1Regs.TCR.bit.TRB = 1;CpuTimer2Regs.TCR.bit.TRB = 1;/ Reset interrupt counters:CpuTimer1.InterruptCount = 0;CpuTimer2.InterruptCount = 0;void ConfigCpuTimer(struct CPUTIMER_VARS *Timer, float Freq, float Period)Uint32 temp;/ Initialize timer period:Timer-CPUF
36、reqInMHz = Freq;Timer-PeriodInUSec = Period;temp = (long) (Freq * Period);Timer-RegsAddr-PRD.all = temp;/ Set pre-scale counter to divide by 1 (SYSCLKOUT):Timer-RegsAddr-TPR.all = 0;Timer-RegsAddr-TPRH.all = 0;/ 重設(shè)定時(shí)器中斷控制寄存器Timer-RegsAddr-TCR.bit.TSS = 1; / 1 = 停定時(shí)器, 0 = 開始定時(shí)器Timer-RegsAddr-TCR.bit.
37、TRB = 1; / 1 = 定時(shí)器重新裝值Timer-RegsAddr-TCR.bit.SOFT = 0;Timer-RegsAddr-TCR.bit.FREE = 0; / Timer Free Run DisabledTimer-RegsAddr-TCR.bit.TIE = 1; / 0 關(guān)閉定時(shí)器中斷 1 打開 Timer-RegsAddr-TCR.bit.TSS = 0; / 0 = 開始定時(shí)器Timer-InterruptCount = 0; / 重設(shè)定時(shí)器中斷次數(shù)Cpu定時(shí)器中斷設(shè)置PieVectTable.TINT0 = &cpu_timer0_isr; /將定時(shí)器0的中斷服務(wù)
38、子函數(shù)地址存放到相應(yīng)的向量地址中,這個(gè)函數(shù)存在于DSP2802x_DefaultIsr.c 。故可以寫成PieVectTable.TINT0=&TINT0_ISR;在DSP2802x_DefaultIsr.c里邊對(duì)應(yīng)填寫中斷服務(wù)函數(shù)關(guān)于定時(shí)器1和2一定要看懂上邊的圖,1和2都是直接連哎cpu上未通過(guò)PIE,故在使能中斷和中斷函數(shù)中會(huì)略有不同中斷使能IER |= M_INT1;IER |= M_INT13; IER |= M_INT14;/*PIE級(jí):使能PIE組1中與Timer0對(duì)應(yīng)的中斷使能位TINT0,而Timer1和Timer2未經(jīng)過(guò)PIE模塊,直接連到CPU上,由CPU直接應(yīng)答,無(wú)須經(jīng)
39、過(guò)PIEPieCtrlRegs.PIEIER1.bit.INTx7 = 1; /TINT0為PIE組1的第7位EINT; / 使能全局中斷INTMERTM; / 使能全局實(shí)時(shí)中斷 DBGMfor(;); /等待中斷一旦中斷請(qǐng)求信號(hào)送到CPU級(jí),與INTx對(duì)應(yīng)的CPU終端標(biāo)志寄存器IFR中的相應(yīng)位將置1,如果中斷使能寄存器IER中的相應(yīng)位為1,則使全局使能位INTM=0或DBGIER=1(與使用的中斷進(jìn)程有關(guān)).CPU相應(yīng)中斷請(qǐng)求:首先自動(dòng)將IERx、IFRx、EALLOW清0,將INTM置1。從PIE中斷向量列表中讀取中斷服務(wù)函數(shù)地址,轉(zhuǎn)入中斷服務(wù)地址開始執(zhí)行執(zhí)行完返回interrupt vo
40、id cpu_timer0_isr(void)0 CpuTimer0.InterruptCount+; /記錄中斷次數(shù),中斷已經(jīng)應(yīng)答,可以從組1中接收更多的中斷 PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;中斷控制PIE在清除PIEIFR和PIEIER寄存器中的位時(shí)應(yīng)該遵守3個(gè)主要規(guī)則:規(guī)則1:切勿通過(guò)軟件來(lái)清除PIEIFR的位當(dāng)一個(gè)寫或讀-修改-寫PIEIFR寄存器操作發(fā)生時(shí),引入的中斷可能被丟失。要清除一個(gè)PIEIFR位,必須服務(wù)掛起中斷(pending interrupt)。如果你想清除PIEIFR位但不執(zhí)行正常的服務(wù)程序,請(qǐng)執(zhí)行下列操作:置位EALLO
41、W位來(lái)允許修改PIE向量表。修改PIE向量表,使外設(shè)服務(wù)程序的向量指向一個(gè)臨時(shí)的ISR。這個(gè)臨時(shí)的ISR將只執(zhí)行中斷返回操作(IRET)。使能中斷,讓臨時(shí)ISR服務(wù)中斷。在臨時(shí)中斷程序執(zhí)行完后,PIEIFR位將被清除。修改PIE向量表,將外設(shè)的服務(wù)程序重新映射到合適的服務(wù)程序。清除EALLOW位。規(guī)則2:軟件劃分中斷優(yōu)先級(jí)的方法使用C2833x C/C+頭文件和外設(shè)示例(文檔編號(hào)SPRC530)中介紹的方法來(lái)操作。使用CPU IER寄存器作為全局優(yōu)先級(jí),單個(gè)PIEIER寄存器作為組優(yōu)先級(jí)。這時(shí),PIEIER寄存器只能在一個(gè)中斷中被修改。另外,只能修改正在服務(wù)的中斷所在組的PIEIER。這個(gè)修改
42、在PIEACK位保持其它中斷從CPU返回時(shí)執(zhí)行。切勿在服務(wù)一個(gè)其它組的中斷時(shí)禁能該組的PIEIER位。規(guī)則3:使用PIEIER禁能中斷如果PIEIER寄存器的位需要在這個(gè)上下文環(huán)境之外被清除。應(yīng)該使用下面2種方法中的一種。第一種方法保存相關(guān)的PIE標(biāo)志寄存器,以便中斷不丟失。第二種方法清除相關(guān)的PIE標(biāo)志寄存器。方法1:使用PIEIERx寄存器來(lái)禁能中斷和保存相關(guān)的PIEIFRx標(biāo)志。為了在保存PIEIFRx寄存器中相關(guān)標(biāo)志的同時(shí)清除PIEIERx寄存器中的位,應(yīng)該執(zhí)行下列操作:1.禁能全局中斷(INTM = 1)。2.清除PIEIERx.y位來(lái)禁能一個(gè)給定外設(shè)的中斷??梢詾橥粋€(gè)組內(nèi)的一個(gè)或
43、多個(gè)外設(shè)執(zhí)行該操作。3.等待5個(gè)周期。需要這個(gè)延時(shí)來(lái)確保進(jìn)入CPU的所有中斷都在CPU IFR寄存器中標(biāo)識(shí)出來(lái)。4.清除外設(shè)組的CPU IFRx位。這是一個(gè)安全的CPU IFR寄存器操作。5.清除外設(shè)組的PIEACKx位。6.使能全局中斷(INTM = 0)。方法2:使用PIEIERx寄存器來(lái)禁能中斷和清除相關(guān)的PIEIFRx標(biāo)志。為了執(zhí)行一個(gè)外設(shè)中斷的軟件復(fù)位和清除PIEIFRx寄存器及CPU IFR寄存器中的相關(guān)標(biāo)志,請(qǐng)執(zhí)行下列操作:1.禁能全局中斷(INTM = 1)。2.置位EALLOW位。3.修改PIE向量表,暫時(shí)將特定外設(shè)中斷的向量映射到一個(gè)空的中斷服務(wù)程序(ISR)。這個(gè)空的IS
44、R只執(zhí)行中斷返回(IRET)。這是清除單個(gè)PIEIFRx.y位的一種很安全的方法,不會(huì)丟失該組內(nèi)其它外設(shè)的任何中斷。4.在外設(shè)寄存器上禁能外設(shè)中斷。5.使能全局中斷(INTM = 0)。6.等待空ISR程序服務(wù)所有掛起的外設(shè)中斷。7.禁能全局中斷(INTM = 1)。8.修改PIE向量表,將外設(shè)向量映射回原來(lái)的ISR。9.清除EALLOW位。10.禁能給定外設(shè)的PIEIER位。11.清除給定外設(shè)組的IFR位(這是一個(gè)安全的CPU IFR寄存器操作)。12.清除PIE組的PIEACK位。13.使能全局中斷。圖 STYLEREF 1 s 3. SEQ 圖 * ARABIC s 1 5 多路復(fù)用中斷
45、請(qǐng)求流程圖PIE組內(nèi)的任何外設(shè)或外部中斷產(chǎn)生一個(gè)中斷。如果中斷在外設(shè)模塊中被使能,中斷請(qǐng)求就被發(fā)送到PIE模塊。PIE模塊確認(rèn)PIE組x內(nèi)的中斷(INTx.y)已經(jīng)提交一個(gè)中斷并且相應(yīng)的PIE中斷標(biāo)志位被鎖存:PIEIFRx.y = 1。中斷請(qǐng)求要從PIE發(fā)送到CPU,必須滿足條件:相應(yīng)的使能位必須置位(PIEIERx.y = 1),并且組的PIEACKx位必須被清除。如果3a和3b的條件都滿足,中斷請(qǐng)求就被發(fā)送到CPU,并且再次置位應(yīng)答位(PIEACKx = 1)。PIEACKx位將保持置位,直到你將其清除(表明組的其它中斷可以從PIE發(fā)送到CPU)。置位CPU中斷標(biāo)志位(CPU IFRx
46、= 1),表明CPU級(jí)有一個(gè)掛起的中斷x。如果CPU中斷被使能(CPU IER位x = 1,或者DBGIER位x = 1),并且全局中斷屏蔽被清除(INTM = 0),那么CPU將服務(wù)INTx。CPU確認(rèn)中斷并執(zhí)行自動(dòng)上下文保存,清除IER位,置位INTM以及清除EALLOW。CPU為準(zhǔn)備服務(wù)中斷所執(zhí)行的操作在TMS320C28x DSP CPU和指令集參考指南(文檔編號(hào) SPRU430)中進(jìn)行了描述。然后CPU將從PIE中請(qǐng)求合適的向量。對(duì)于多路復(fù)用的中斷,PIE模塊使用PIEIERx和PIEIFRx寄存器的當(dāng)前值來(lái)譯碼應(yīng)該使用哪個(gè)向量地址。有兩種可能的情形:組內(nèi)最高優(yōu)先級(jí)中斷的向量(該中斷
47、在PIEIERx寄存器中被使能,并且在PIEIFRx中標(biāo)識(shí)為掛起)被提取出來(lái)用作跳轉(zhuǎn)地址。這樣,即使在第7步以后有一個(gè)更高優(yōu)先級(jí)的已經(jīng)使能的中斷被標(biāo)識(shí)出來(lái),它也先被服務(wù)。如果組內(nèi)沒(méi)有標(biāo)識(shí)出來(lái)的中斷被使能,PIE將用該組內(nèi)最高優(yōu)先級(jí)中斷的向量來(lái)響應(yīng)。該向量用作INTx.1的跳轉(zhuǎn)地址。這個(gè)操作對(duì)應(yīng)28x TRAP或INT指令。注:因?yàn)镻IEIERx寄存器用來(lái)確定哪個(gè)向量用作跳轉(zhuǎn)地址,因此在清除PIEIERx寄存器的位時(shí)必須十分小心。清除PIEIERx寄存器的位的正確流程如 REF _Ref225744796 n h * MERGEFORMAT 3.3.2節(jié)所述。不遵循該節(jié)所描述的步驟可能導(dǎo)致在中斷
48、傳遞到CPU( REF _Ref224640031 h * MERGEFORMAT 圖 3.5中的第5步)后PIEIERx寄存器中出現(xiàn)變化。在這種情況下,PIE的響應(yīng)就好像執(zhí)行了一個(gè)TRAP或INT指令一樣,直到?jīng)]有其它中斷被掛起和使能。在這里,PIEIFRx.y位被清除,CPU跳轉(zhuǎn)到從PIE中提取出來(lái)的中斷的向量。GPIO關(guān)閉寫保護(hù)EALLOW;選擇引腳功能復(fù)位時(shí)為默認(rèn)狀態(tài)基本的I/O功能外設(shè)選擇外設(shè)選擇2外設(shè)選擇3GPAMUX1(GPAMUX1位=00)(GPAMUX1位=01)(GPAMUX1位=10)(GPAMUX1位=11)1-0GPIO0EPWM1A(O)保留(1)保留(1)3-2
49、GPIO1EPWM1B(O)保留COMP1OUT(O)5-4GPIO2EPWM2A(O)保留保留(1)7-6GPIO3EPWM2B(O)保留COMP2OUT(O)9-8GPIO4EPWM3A(O)保留保留(1)11-10GPIO5EPWM3B(O)保留ECAP1(I/O)13-12GPIO6EPWM4A(O)EPWMSYNCI(I)EPWMSYNCO(O)15-14GPIO7EPWM4B(O)SCIRXDA(I)保留17-16保留保留保留保留19-18保留保留保留保留21-20保留保留保留保留23-22保留保留保留保留25-24GPIO12(I)SCITXDA(O)保留27-26保留保留保留保
50、留29-28保留保留保留保留31-30保留保留保留保留GPAMUX2(GPAMUX2位=00)(GPAMUX2位=01)(GPAMUX2位=10)(GPAMUX2位=11)1-0GPIO16SPISIMOA(I/O)保留(I)3-2GPIO17SPISOMIA(I/O)保留(I)5-4GPIO18SPICLKA(I/O)SCITXDA(O)XCLKOUT(O)7-6GPIO19/XCLKIN(I/O)SCIRXDA(I)ECAP1(I/O)9-8保留保留保留保留GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 1; / GPIO0 = PWM1A例如,通過(guò)寫GPAMUX13:1
51、2來(lái)控制GPIO6引腳的復(fù)用情況。通過(guò)寫這兩個(gè)位,引腳被配置成GPIO6或3種外設(shè)功能當(dāng)中的一個(gè)。GPIO6引腳可以配置如下:GPAMUX113:12位的設(shè)置選擇的引腳功能如果GPAMUX113:12 = 0,0引腳配置用作GPIO6如果GPAMUX113:12 = 0,1引腳配置用作EPWM4A(O)如果GPAMUX113:12 = 1,0引腳配置用作EPWMSYNCI(I)如果GPAMUX113:12 = 1,1引腳配置用作EPWMSYNCO(O)使能或禁能內(nèi)部上拉電阻位域值描述(1)31-0GPIO31-GPIO001配置所選GPIO Port A引腳上的內(nèi)部上拉電阻。使能指定引腳上的內(nèi)
52、部上拉。(GPIO12 GPIO31的默認(rèn)狀態(tài))禁能指定引腳上的內(nèi)部上拉。(GPIO0 GPIO11的默認(rèn)狀態(tài))GpioCtrlRegs.GPAPUD.bit.GPIO0 = 0; / Enable pullup on GPIO0選擇輸入鑒定輸入限定功能可以方便地消除噪聲中的信號(hào)。包含:異步輸出僅與SYSCLKOUT同步通過(guò)采樣窗協(xié)定采樣周期采樣長(zhǎng)度GpioCtrlRegs.GPAQSEL1.bit.GPIO0=0; /與系統(tǒng)時(shí)鐘同步默認(rèn)地,所有輸入信號(hào)都只與SYSCLKOUT同步。當(dāng)信號(hào)在3次或6次采樣內(nèi)保持不變時(shí),信號(hào)可以通過(guò)采樣窗口進(jìn)入DSP內(nèi)部,采樣窗包含的采樣周期個(gè)數(shù)始終比采樣次數(shù)少
53、1為數(shù)字通用I/O選擇引腳的方向如果引腳被配置用作GPIO,在GPADIR、GPBDIR或AIODIR寄存器中指定引腳的方向是輸入還是輸出。默認(rèn)地,所有GPIO引腳都是輸入引腳。要將引腳的方向從輸入變?yōu)檩敵觯紫韧ㄟ^(guò)將合適的值寫入GPxCLEAR、GPxSET或GPxTOGGLE(或AIOCLEAR、AIOSET或AIOTOGGLE)寄存器把驅(qū)動(dòng)的值裝入輸出鎖存器。一旦輸出鎖存器被裝載,就可以通過(guò)GPxDIR寄存器來(lái)將引腳方向從輸入變?yōu)檩敵?。所有引腳的輸出鎖存器在復(fù)位時(shí)被清除。GpioDataRegs.GPASET.bit.GPIO0 = 1; / 產(chǎn)生高電平GpioCtrlRegs.GPAD
54、IR.bit.GPIO0 = 1; / GPIO0 = output選擇低功率模式喚醒源指定哪些引腳(如果存在)能將器件從停機(jī)或待機(jī)低功率模式喚醒。在GPIOLPMSEL(不知如何配置)寄存器中指定這些引腳。選擇外部中斷源指定XINT1 XINT3中斷的中斷源。你可以指定一個(gè)Port A信號(hào)作為一個(gè)中斷的中斷源。中斷源在GPIOXINTnSEL寄存器中指定。中斷的極性可以在XINTnCR寄存器中配置注:從寫配置寄存器(例如,寫GPxMUXn和GPxQSELn)發(fā)生到動(dòng)作有效之間有2個(gè)SYSCLKOUT周期的延遲。void Gpio_Config(void);EALLOW;GpioCtrlReg
55、s.GPAMUX1.bit.GPIO0=0;/設(shè)置為數(shù)字IOGpioCtrlRegs.GPAPUD.bit.GPIO0=1; /使能GPIO內(nèi)部上拉GpioCtrlRegs.GPAQSEL1.bit.GPIO0=0; /只與SYSCLKOUT同步,對(duì)于外設(shè)和GPIO均有效/GpioCtrlRegs.GPAQSEL1.bit.GPIO0=3/(GpioCtrlRegs.GPAQSEL1.bit.GPIO0=1 2 /3次采樣 6次采樣GpioDataRegs.GPASET.bit.GPIO0=1;/設(shè)置為高電平GpioCtrlRegs.GPADIR.bit.GPIO0=1 /OUTPUTGPIO
56、XINT_REG.bit.GPIOSEL=0 x00000; /選擇GPIO0作為XINT1/2的輸入引腳ADCADC上電初始化ADC的上電順序如下:第一步:如果需要外部基準(zhǔn),可通過(guò)ADCCTL1寄存器的位3(ADCREFSEL)使能第二步:通過(guò)置位ADCCTL1寄存器中的7-5位(ADCPWDN、ADCBGPWD、ADCREFPWD)將基準(zhǔn)、帶隙和模擬電路一起上電。通常不支持中間狀態(tài)第三步:通過(guò)置位ADCCTL1寄存器的位14(ADCENABLE)使能ADC在執(zhí)行第一次轉(zhuǎn)換之前,在第二步后面需要1毫秒的延遲第一步到第三步也可以同時(shí)執(zhí)行。在ADC掉電時(shí),第二步中的那3個(gè)位可以同時(shí)清零。ADC功
57、率電平必須通過(guò)軟件控制,并且與器件電源模式的狀態(tài)無(wú)關(guān)。注:這種類型的ADC在所有電路上電后需要1ms延遲。這與之前的那些ADC不同。void InitAdc(void)/官方例子 置位ADCCTL1寄存器中的7-5位 extern void DSP28x_usDelay(Uint32 Count);EALLOW; SysCtrlRegs.PCLKCR0.bit.ADCENCLK = 1;/應(yīng)該首先設(shè)置adcenclk時(shí)鐘以啟用ADC。(*Device_cal)(); EDIS; EALLOW; AdcRegs.ADCCTL1.bit.ADCBGPWD = 1; / 將帶隙電路上電BGAdcRe
58、gs.ADCCTL1.bit.ADCREFPWD = 1; /將ADC模擬電路上電AdcRegs.ADCCTL1.bit.ADCPWDN = 1; /將基準(zhǔn)參考電壓上電AdcRegs.ADCCTL1.bit.ADCENABLE = 1; / Enable ADCAdcRegs.ADCCTL1.bit.ADCREFSEL = 0; / ADCREFSEL內(nèi)部電壓選擇位,0為使用內(nèi)部帶隙產(chǎn)生參考電壓,1為使用外部VREFHI產(chǎn)生參考電壓 EDIS; DELAY_US(ADC_usDELAY); /在ADC轉(zhuǎn)換前必須執(zhí)行5毫秒的延遲轉(zhuǎn)換 須包含DELAY_US.asm文件初始化AIOvoid Ini
59、tAdcAio()GpioCtrlRegs.AIOMUX1.bit.AIO2 = 2; /Configure AIO2 for A2 (analog input) ADC設(shè)置與之前的那些ADC不同,這個(gè)ADC不基于序列發(fā)生器(sequencer),而是基于SOC。術(shù)語(yǔ)SOC是一種配置設(shè)置,它定義的是單通道單轉(zhuǎn)換。該設(shè)置包含3個(gè)配置:?jiǎn)?dòng)轉(zhuǎn)換的觸發(fā)源、轉(zhuǎn)換通道和采集(采樣)窗口尺寸。每個(gè)SOC都可以配置成由許多輸入觸發(fā)器中的其中一個(gè)啟動(dòng)。如果需要,幾個(gè)SOC可以配置成使用同一個(gè)通道。下面就是一些可用的輸入觸發(fā)器:軟件CPU定時(shí)器0/1/2中斷XINT2 SOCePWM1-7 SOCA和SOCB另
60、外,ADCINT1和ADCINT2可以反饋回來(lái)觸發(fā)另外一次轉(zhuǎn)換。這種配置由ADCINTSOCSEL1/2寄存器控制。如果需要連續(xù)轉(zhuǎn)換,這種模式將非常有用。需了解的機(jī)制:輪詢同步采樣,偶數(shù)和其后的基數(shù)SOC配成一對(duì)同時(shí)開始采樣順序采樣,按照觸發(fā)順序進(jìn)行采樣EALLOW;AdcRegs.ADCCTL1.bit.INTPULSEPOS= 1; /在ADC結(jié)果存入寄存器一個(gè)周期后AdcRegs.INTSEL1N2.bit.INT1E = 1; /使能ADCINT1AdcRegs.INTSEL1N2.bit.INT1CONT = 0; /0 只有在用戶清除ADCINTx標(biāo)志(在ADCINTFLG寄存器中
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基站租賃合同范本
- 員工福利電子合同范例
- 農(nóng)村修建私房合同范本
- 土方運(yùn)填合同范本
- 代生產(chǎn)加工合同范本
- 商業(yè)幕墻維修合同范例
- 人民版道德與法治九年級(jí)上冊(cè)7.1《神奇的生命世界》聽(tīng)課評(píng)課記錄
- 湘教版數(shù)學(xué)八年級(jí)上冊(cè)2.6《已知角和邊作三角形》聽(tīng)評(píng)課記錄
- 湘教版數(shù)學(xué)九年級(jí)上冊(cè)1.3《反比例函數(shù)的應(yīng)用》(第1課時(shí))聽(tīng)評(píng)課記錄
- 【部編人教版】八年級(jí)上冊(cè)歷史聽(tīng)課評(píng)課記錄 第17課 中國(guó)工農(nóng)紅軍長(zhǎng)征
- 體育活動(dòng)策劃與組織課件
- 公司違規(guī)違紀(jì)連帶處罰制度模版(2篇)
- 2025屆高考物理二輪總復(fù)習(xí)第一編專題2能量與動(dòng)量第1講動(dòng)能定理機(jī)械能守恒定律功能關(guān)系的應(yīng)用課件
- T型引流管常見(jiàn)并發(fā)癥的預(yù)防及處理
- 2024-2025學(xué)年人教新版九年級(jí)(上)化學(xué)寒假作業(yè)(九)
- 內(nèi)業(yè)資料承包合同個(gè)人與公司的承包合同
- 【履職清單】2024版安全生產(chǎn)責(zé)任體系重點(diǎn)崗位履職清單
- 2022年全國(guó)醫(yī)學(xué)博士英語(yǔ)統(tǒng)一考試試題
- 《工業(yè)自動(dòng)化技術(shù)》課件
- (績(jī)效考核)鉗工技能鑒定考核試題庫(kù)
- 2024年江蘇農(nóng)牧科技職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)參考答案
評(píng)論
0/150
提交評(píng)論