1. 程式人生 > >DSP2833x_Xintf.c 學習總結

DSP2833x_Xintf.c 學習總結

// TI File $Revision: /main/5 $ // Checkin $Date: August 16, 2007   11:06:26 $ //########################################################################### // // FILE:   DSP2833x_Xintf.c // // TITLE:   DSP2833x Device External Interface Init & Support Functions. // // DESCRIPTION: //http://tiyubisai.com/video_news/news_135571.html //          Example initialization function for the external interface (XINTF). //          This example configures the XINTF to its default state.  For an //          example of how this function being used refer to the //          examples/run_from_xintf project. // //########################################################################### // $TI Release: 2833x/2823x Header Files V1.32 $ // $Release Date: June 28, 2010 $ //########################################################################### #include "DSP2833x_Device.h"     // DSP2833x Headerfile Include File #include "DSP2833x_Examples.h"   // DSP2833x Examples Include File //--------------------------------------------------------------------------- // InitXINTF: //--------------------------------------------------------------------------- // This function initializes the External Interface the default reset state. // // Do not modify the timings of the XINTF while running from the XINTF.  Doing // so can yield unpredictable results void InitXintf(void) {     // This shows how to write to the XINTF registers.  The     // values used here are the default state after reset.     // Different hardware will require a different configuration.     // For an example of an XINTF configuration used with the     // F28335 eZdsp, refer to the examples/run_from_xintf project.     // Any changes to XINTF timing should only be made by code     // running outside of the XINTF.     // All Zones---------------------------------     // Timing for all zones based on XTIMCLK = 1/2 SYSCLKOUT     EALLOW;     XintfRegs.XINTCNF2.bit.XTIMCLK = 1;     // No write buffering     XintfRegs.XINTCNF2.bit.WRBUFF = 0;     // XCLKOUT is enabled     XintfRegs.XINTCNF2.bit.CLKOFF = 0;     // XCLKOUT = XTIMCLK/2     XintfRegs.XINTCNF2.bit.CLKMODE = 1;     // Zone 0------------------------------------     // When using ready, ACTIVE must be 1 or greater     // Lead must always be 1 or greater     // Zone write timing     XintfRegs.XTIMING0.bit.XWRLEAD = 3;     XintfRegs.XTIMING0.bit.XWRACTIVE = 7;     XintfRegs.XTIMING0.bit.XWRTRAIL = 3;     // Zone read timing     XintfRegs.XTIMING0.bit.XRDLEAD = 3;     XintfRegs.XTIMING0.bit.XRDACTIVE = 7;     XintfRegs.XTIMING0.bit.XRDTRAIL = 3;     // double all Zone read/write lead/active/trail timing     XintfRegs.XTIMING0.bit.X2TIMING = 1;     // Zone will sample XREADY signal     XintfRegs.XTIMING0.bit.USEREADY = 1;     XintfRegs.XTIMING0.bit.READYMODE = 1;  // sample asynchronous     // Size must be either:     // 0,1 = x32 or     // 1,1 = x16 other values are reserved     XintfRegs.XTIMING0.bit.XSIZE = 3;     // Zone 6------------------------------------     // When using ready, ACTIVE must be 1 or greater     // Lead must always be 1 or greater     // Zone write timing     XintfRegs.XTIMING6.bit.XWRLEAD = 3;     XintfRegs.XTIMING6.bit.XWRACTIVE = 7;     XintfRegs.XTIMING6.bit.XWRTRAIL = 3;     // Zone read timing     XintfRegs.XTIMING6.bit.XRDLEAD = 3;     XintfRegs.XTIMING6.bit.XRDACTIVE = 7;     XintfRegs.XTIMING6.bit.XRDTRAIL = 3;     // double all Zone read/write lead/active/trail timing     XintfRegs.XTIMING6.bit.X2TIMING = 1;     // Zone will sample XREADY signal     XintfRegs.XTIMING6.bit.USEREADY = 1;     XintfRegs.XTIMING6.bit.READYMODE = 1;  // sample asynchronous     // Size must be either:     // 0,1 = x32 or     // 1,1 = x16 other values are reserved     XintfRegs.XTIMING6.bit.XSIZE = 3;     // Zone 7------------------------------------     // When using ready, ACTIVE must be 1 or greater     // Lead must always be 1 or greater     // Zone write timing     XintfRegs.XTIMING7.bit.XWRLEAD = 3;     XintfRegs.XTIMING7.bit.XWRACTIVE = 7;     XintfRegs.XTIMING7.bit.XWRTRAIL = 3;     // Zone read timing     XintfRegs.XTIMING7.bit.XRDLEAD = 3;     XintfRegs.XTIMING7.bit.XRDACTIVE = 7;     XintfRegs.XTIMING7.bit.XRDTRAIL = 3;     // double all Zone read/write lead/active/trail timing     XintfRegs.XTIMING7.bit.X2TIMING = 1;     // Zone will sample XREADY signal     XintfRegs.XTIMING7.bit.USEREADY = 1;     XintfRegs.XTIMING7.bit.READYMODE = 1;  // sample asynchronous     // Size must be either:     // 0,1 = x32 or     // 1,1 = x16 other values are reserved     XintfRegs.XTIMING7.bit.XSIZE = 3;     // Bank switching     // Assume Zone 7 is slow, so add additional BCYC cycles     // when ever switching from Zone 7 to another Zone.     // This will help avoid bus contention.     XintfRegs.XBANK.bit.BANK = 7;     XintfRegs.XBANK.bit.BCYC = 7;     EDIS;    //Force a pipeline flush to ensure that the write to    //the last register configured occurs before returning.    InitXintf16Gpio(); // InitXintf32Gpio();    asm(" RPT #7 || NOP"); } void InitXintf32Gpio() {      EALLOW;      GpioCtrlRegs.GPBMUX2.bit.GPIO48 = 3;  // XD31      GpioCtrlRegs.GPBMUX2.bit.GPIO49 = 3;  // XD30      GpioCtrlRegs.GPBMUX2.bit.GPIO50 = 3;  // XD29      GpioCtrlRegs.GPBMUX2.bit.GPIO51 = 3;  // XD28      GpioCtrlRegs.GPBMUX2.bit.GPIO52 = 3;  // XD27      GpioCtrlRegs.GPBMUX2.bit.GPIO53 = 3;  // XD26      GpioCtrlRegs.GPBMUX2.bit.GPIO54 = 3;  // XD25      GpioCtrlRegs.GPBMUX2.bit.GPIO55 = 3;  // XD24      GpioCtrlRegs.GPBMUX2.bit.GPIO56 = 3;  // XD23      GpioCtrlRegs.GPBMUX2.bit.GPIO57 = 3;  // XD22      GpioCtrlRegs.GPBMUX2.bit.GPIO58 = 3;  // XD21      GpioCtrlRegs.GPBMUX2.bit.GPIO59 = 3;  // XD20      GpioCtrlRegs.GPBMUX2.bit.GPIO60 = 3;  // XD19      GpioCtrlRegs.GPBMUX2.bit.GPIO61 = 3;  // XD18      GpioCtrlRegs.GPBMUX2.bit.GPIO62 = 3;  // XD17      GpioCtrlRegs.GPBMUX2.bit.GPIO63 = 3;  // XD16      GpioCtrlRegs.GPBQSEL2.bit.GPIO48 = 3;  // XD31 asynchronous input      GpioCtrlRegs.GPBQSEL2.bit.GPIO49 = 3;  // XD30 asynchronous input      GpioCtrlRegs.GPBQSEL2.bit.GPIO50 = 3;  // XD29 asynchronous input      GpioCtrlRegs.GPBQSEL2.bit.GPIO51 = 3;  // XD28 asynchronous input      GpioCtrlRegs.GPBQSEL2.bit.GPIO52 = 3;  // XD27 asynchronous input      GpioCtrlRegs.GPBQSEL2.bit.GPIO53 = 3;  // XD26 asynchronous input      GpioCtrlRegs.GPBQSEL2.bit.GPIO54 = 3;  // XD25 asynchronous input      GpioCtrlRegs.GPBQSEL2.bit.GPIO55 = 3;  // XD24 asynchronous input      GpioCtrlRegs.GPBQSEL2.bit.GPIO56 = 3;  // XD23 asynchronous input      GpioCtrlRegs.GPBQSEL2.bit.GPIO57 = 3;  // XD22 asynchronous input      GpioCtrlRegs.GPBQSEL2.bit.GPIO58 = 3;  // XD21 asynchronous input      GpioCtrlRegs.GPBQSEL2.bit.GPIO59 = 3;  // XD20 asynchronous input      GpioCtrlRegs.GPBQSEL2.bit.GPIO60 = 3;  // XD19 asynchronous input      GpioCtrlRegs.GPBQSEL2.bit.GPIO61 = 3;  // XD18 asynchronous input      GpioCtrlRegs.GPBQSEL2.bit.GPIO62 = 3;  // XD17 asynchronous input      GpioCtrlRegs.GPBQSEL2.bit.GPIO63 = 3;  // XD16 asynchronous input      InitXintf16Gpio(); } void InitXintf16Gpio() {      EALLOW;      GpioCtrlRegs.GPCMUX1.bit.GPIO64 = 3;  // XD15      GpioCtrlRegs.GPCMUX1.bit.GPIO65 = 3;  // XD14      GpioCtrlRegs.GPCMUX1.bit.GPIO66 = 3;  // XD13      GpioCtrlRegs.GPCMUX1.bit.GPIO67 = 3;  // XD12      GpioCtrlRegs.GPCMUX1.bit.GPIO68 = 3;  // XD11      GpioCtrlRegs.GPCMUX1.bit.GPIO69 = 3;  // XD10      GpioCtrlRegs.GPCMUX1.bit.GPIO70 = 3;  // XD19      GpioCtrlRegs.GPCMUX1.bit.GPIO71 = 3;  // XD8      GpioCtrlRegs.GPCMUX1.bit.GPIO72 = 3;  // XD7      GpioCtrlRegs.GPCMUX1.bit.GPIO73 = 3;  // XD6      GpioCtrlRegs.GPCMUX1.bit.GPIO74 = 3;  // XD5      GpioCtrlRegs.GPCMUX1.bit.GPIO75 = 3;  // XD4      GpioCtrlRegs.GPCMUX1.bit.GPIO76 = 3;  // XD3      GpioCtrlRegs.GPCMUX1.bit.GPIO77 = 3;  // XD2      GpioCtrlRegs.GPCMUX1.bit.GPIO78 = 3;  // XD1      GpioCtrlRegs.GPCMUX1.bit.GPIO79 = 3;  // XD0      GpioCtrlRegs.GPBMUX1.bit.GPIO40 = 3;  // XA0/XWE1n      GpioCtrlRegs.GPBMUX1.bit.GPIO41 = 3;  // XA1      GpioCtrlRegs.GPBMUX1.bit.GPIO42 = 3;  // XA2      GpioCtrlRegs.GPBMUX1.bit.GPIO43 = 3;  // XA3      GpioCtrlRegs.GPBMUX1.bit.GPIO44 = 3;  // XA4      GpioCtrlRegs.GPBMUX1.bit.GPIO45 = 3;  // XA5      GpioCtrlRegs.GPBMUX1.bit.GPIO46 = 3;  // XA6      GpioCtrlRegs.GPBMUX1.bit.GPIO47 = 3;  // XA7      GpioCtrlRegs.GPCMUX2.bit.GPIO80 = 3;  // XA8      GpioCtrlRegs.GPCMUX2.bit.GPIO81 = 3;  // XA9      GpioCtrlRegs.GPCMUX2.bit.GPIO82 = 3;  // XA10      GpioCtrlRegs.GPCMUX2.bit.GPIO83 = 3;  // XA11      GpioCtrlRegs.GPCMUX2.bit.GPIO84 = 3;  // XA12      GpioCtrlRegs.GPCMUX2.bit.GPIO85 = 3;  // XA13      GpioCtrlRegs.GPCMUX2.bit.GPIO86 = 3;  // XA14      GpioCtrlRegs.GPCMUX2.bit.GPIO87 = 3;  // XA15      GpioCtrlRegs.GPBMUX1.bit.GPIO39 = 3;  // XA16      GpioCtrlRegs.GPAMUX2.bit.GPIO31 = 3;  // XA17      GpioCtrlRegs.GPAMUX2.bit.GPIO30 = 3;  // XA18      GpioCtrlRegs.GPAMUX2.bit.GPIO29 = 3;  // XA19      GpioCtrlRegs.GPBMUX1.bit.GPIO34 = 3;  // XREADY  GpioCtrlRegs.GPBMUX1.bit.GPIO35 = 3;  // XRNW      GpioCtrlRegs.GPBMUX1.bit.GPIO38 = 3;  // XWE0      GpioCtrlRegs.GPBMUX1.bit.GPIO36 = 3;  // XZCS0      GpioCtrlRegs.GPBMUX1.bit.GPIO37 = 3;  // XZCS7      GpioCtrlRegs.GPAMUX2.bit.GPIO28 = 3;  // XZCS6      EDIS; } //=========================================================================== // No more. //=========================================================================== http://blog.csdn.net/xiaoxiongli/article/details/49619565
http://blog.csdn.net/xiaoxiongli/

相關推薦

DSP2833x_Xintf.c 學習總結

// TI File $Revision: /main/5 $ // Checkin $Date: August 16, 2007   11:06:26 $ //#####################################################

9.4 C++ 學習總結

ive 整型 發現 文件輸入 文件的 cin c++ 文件 字符 今天沒有看很多,看了兩個內容還不是看的很仔細打算看仔細了在寫剩下的部分。 C++基本的輸入輸出 1、對屏幕的數據與字符串的輸入輸出 主要是對變量的從屏幕上的讀取,以及運算後的輸出,與C語言的內容沒有區別,

9.5 C++學習總結

linux linu clas 定義 初始化 精簡版 linux下 總結 精簡 1、C++兵器譜 主要講的是在Linux和windows環境下C++開發的IDE linux下的一個形象說法是八國聯軍,就是各種的配合 沒有仔細研究等到用到Linux的時候再去仔細看 wind

9.8 C++學習總結2

方法 系統 返回 關於 當前位置 調用函數 bsp 參數 重復 經過幾天的學習 開始逐漸接觸到C++相對重要的部分。 1、內聯函數和函數重載 內聯函數:在函數前 +inline 在用到此函數的時候,直接將代碼嵌到當前位置,主要是避免函數在調用函數的過程中占用過多時間。 因

c++學習總結(四)——運算子過載與標準模板庫(STL)

一、心得總結     運算子過載使得使用者自定義的資料以一種更簡潔的方式工作。例如在做ATM模擬系統時,使用過載“<”來比較時間,可以簡化程式,減少程式碼。另外,我們也可以過載運算子函式,將運算子用於操作自定義的資料型別。過載運算子函式可以對運算子做出新的解釋,即定義使用

c++學習總結(三)——類與物件

一、心得感悟     c語言的課程學習後,開始c++的學習,首先就是學習類。在學習類時,類的使用與c語言有著極大的差別,一開始學習十分別扭。c語言的學習直接定義幾個形參、函式就可以寫程式了;而到了c++學習,關於類,首先必須定義類。具有相同性質和功能的東西構成的集合,通常歸成一

c++學習總結(二)——遞迴函式

一、心得感悟     關於函式之前有過總結,函式是在程式設計中為簡化主程式、使複雜程式簡單化的子程式。而遞迴函式則是一種特殊的函式。它是直接或間接呼叫的函式,通常可以把一個大型複雜的問題層層轉化為一個與原問題相似的規模較小的問題來求解。遞迴策略只需少量的程式就可以描述出解題過程

c++學習總結(一)---函式

一.心得總結 在上學期的c語言的學習中,我初次接觸了程式設計,感覺比較新奇也比較有挑戰性,從一開始什麼都不會,到慢慢可以寫程式,心中慢慢積累起成就感。在上學期程式設計中解決一道難題,雖然很好,但程式碼很長,有些語句反覆使用,但卻沒有方法找到簡單的方法。老師說過寫出好程式才是一個程式設計師該做的

c++學習總結(六)——虛擬函式與多型

一、學習總結     在面向物件程式設計中,多型性是指一個名字,多種語義;或者介面相同,多種實現。過載函式是多型性的一種簡單形式。C++為類體系提供一種靈活的多型機制——虛擬函式。虛擬函式允許函式呼叫與函式體的聯絡在執行時才進行,成為動態聯編。類、繼承和多型,提供了對軟體重用性

c++學習總結(五)——繼承

一、心得體會     之前的程式碼在定義類時,如果需要多次用到某一個類,都需要反覆定義使用它,但繼承的學習卻彌補這一缺點。整合式面向物件程式設計中軟重用的關鍵技術。繼承機制使用已經定義的類作為基礎建立新的類定義,新的類時原有類的資料及操作與新類所增加的資料及操作的組合。新的類把

C++學習總結_什麼是wchar_t型別

一、wchar_t型別的由來      我們知道char型別變數可以儲存一個位元組的字元,它用來儲存英文字元和標點符號是可以的,但是對於漢字、韓文以及日文這樣的字元卻不可以,因為漢字、韓文以及日文每一個文字都佔據兩個位元組,為了解決這個問題,c++提出了wchar_t型別,稱

本學期C#學習總結

   C#,由於我是轉專業來學計算機的,真的是一點概念都沒有。錯過了老師的第一節課,第二節才開始上他的課,我還是什麼都不懂,不懂學這門課是幹什麼。老師一開始上課給我們灌輸了大量的概念定義,為的是能讓我們更好的理解計算機,理解計算機的各個方面,學計算機的核心。說實話,對於沒接觸過計算機的我,

c#學習總結

一個 標識 面向對象 過程 較差 自己 同時 初步 門面 至本學期結束,我對C#編程語言的學習已進行了兩個多月。 在這兩個多月中,我初步接觸了這門編程語言,並且了解了其中的一些簡單概念。我逐漸了解到了這門語言的高深和難度。從最初的,NET的了解,熟悉了這個平臺,也知道了c#

C#學習總結(5)——倒計時功能實現

今晚在做老師留下的實驗報告內容,其中一個實驗包括了一個倒計時功能,第一次看到就是糾結這可怎麼寫,然後看實驗說明,要使用C#裡的計時器…然後就秒做完了。 Timer—計時器 新增Timer控制元件 到工具箱裡找到Timer,雙擊新增即可。新增之後找到

C/C++學習總結(複習)

C/C++學習了太久,有些知識點有些模糊了,花了半個多月,重新整理了一些,自認為比較重要的知識點,主要是用於自己學習。 1.volatile優化總結: volatile 影響編譯器編譯的結果,指出,volatile 變數是隨時可能發生變化的,與volatile

C++學習總結(十 五)——類的型別裝換方法

類與類間的資料型別轉換方法有兩種一.通過類的建構函式進行類與類間的資料型別裝換二.使用轉換函式進行資料型別的裝換。X::operator T(){return T;}將X型別的物件裝換為T型別的物件,裝換函式沒有引數,沒有返回型別,但是必須用return 返回T型別物件,且該

C++學習總結(二十六)——RTTI型別檢查,類指標型別轉換

#include<iostream> using namespace std; //rtti實時型別檢測 //成員變數的覆蓋,靜態變數也會覆蓋。 // class A { public:

C++學習總結(十一)——類的靜態函式,成員函式的預設引數,類中包含引用和常量

一.類的靜態成員變數,以及靜態函式。 靜態成員變數: 1.靜態成員共享機制 2.靜態成員區域性屬於類,它不是物件的成員,位於靜態區。 3.靜態成員變數需要在外部進行初始化。 靜態函式: 1.靜態成員函式都在程式碼區,類的靜態函式都是共享的。 2.類的大小不包含程式碼區,建立

C++學習總結——vector容器的實現

//myvector.h #pragma once template<class T> class myvector { public: myvector(); ~myvector(); void push_back(T t); T* find(T t);

C++學習總結

一些需要知道的基礎知識點: 在程式程式碼中是通過變數名對記憶體單元進行存取操作的,但是程式碼經過編譯後將變數名轉換為該變數在記憶體中的存放地址,對變數值的存取都是通過地址進行的。比如i+j的運算,如果i等於3,j等於4,程式是先根據變數名與地址的對應關係,找到變數i的地址,從第一個地址開始順序讀取四個位元組資