一.DSP 28335學習之點燈

說明:下面的教程我是參考開發板提供的代碼例子

void main(void)
{

// 步驟 1. 初始化系統控制:
// 設置PLL, WatchDog, 使能外設時鐘
// 下面這個函數可以從DSP2833x_SysCtrl.c文件中找到..
   InitSysCtrl();
   
// 步驟 2. 初始化通用輸入輸出多路複用器GPIO: 
// 這個函數在DSP2833x_Gpio.c源文件中被定義了
// 這個函數使GPIO控制類寄存器初始化到默認狀態
// InitGpio();  // 本例不用此子函數
 
// 本例使用下面的GPIO配置
   Gpio_select();      

// 步驟 3. 清除所有中斷初始化中斷向量表:
// 禁止CPU全局中斷
   DINT;

// 初始化PIE控制寄存器到他們的默認狀態.
// 這個默認狀態就是禁止PIE中斷及清除所有PIE中斷標誌 
// 這個函數放在DSP2833x_PieCtrl.c源文件裏
   InitPieCtrl();

// 禁止CPU中斷和清除所有CPU中斷標誌 
   IER = 0x0000;
   IFR = 0x0000;


//初始化PIE中斷向量表,並使其指向中斷服務子程序(ISR)
// 這些中斷服務子程序被放在了DSP280x_DefaultIsr.c源文件中
// 這個函數放在了DSP2833x_PieVect.c源文件裏面.
   InitPieVectTable();

    
// 步驟 4. 初始化片內外設:
// 這個函數可以在DSP280x_CpuTimers.c源文件中找到
//   InitCpuTimers();   // 這個例子僅初始化了Cpu定時器
    
// 步驟 5. 用戶特定的代碼
   
   GpioDataRegs.GPBDAT.all    =0x30000000;
   GpioDataRegs.GPCDAT.all    =0x00000007;
   for(;;)
   {   
       
       delay_loop();
       GpioDataRegs.GPBTOGGLE.all =0x30000000; 
       GpioDataRegs.GPCTOGGLE.all =0x00000007;
       
       delay_loop();

       GpioDataRegs.GPBTOGGLE.all =0x30000000; 
       GpioDataRegs.GPCTOGGLE.all =0x00000007;
    
    }

}     

Q1: 做一件事情得有步驟,我用DSP去點燈,我需要哪幾個步驟 ?

答:

(1)系統初始化           //這一步肯定得有, 具體怎麼配置。參考上面代碼     。 

(2)配置GPIO        //重點是講GPIO配置,下面會詳細展開怎麼配置

(3)關閉中斷        //參考代碼裏面,有關閉中斷操作。至於爲啥要關閉,我猜測是用不到就關閉吧!

(3)主函數調用   //學習單片機的都知道

 

 

Q2: 配置GPIO其實就相當於操作寄存器。 DSP有這麼多寄存器 。應該操作哪些寄存器?

答:DSP的寄存器非常多,GPIO相關的寄存器也不少。這裏我們只需要點燈。操作幾個重點GPIO相關寄存器即可,其它的相關GPIO寄存器保持默認即可。具體步驟如下。

(1)根據上面的代碼:

    EALLOW;
    GpioCtrlRegs.GPAMUX1.all = 0x00000000;  // All GPIO
    GpioCtrlRegs.GPADIR.all = 0xFFFFFFFF;   // All outputs

    EDIS;

   GpioDataRegs.GPBTOGGLE.all

   因此操作GPAMUX1、GPADIR、GPBTOGGLE三個寄存器即可 。

1.GPAMUX1:  GPIO的多功能複用寄存器,這裏點燈,寫入00即可。    

00:通用的輸入輸出口

01:外設選擇1

10:外設選擇2

11:外設選擇3

 

2.GPADIR: GPIO方向寄存器,GPIO共58個,每個寄存器有兩種狀態。詳見P146-P147

0:配置GPIO作爲輸入

1:配置GPIO作爲輸出

 

3.GPBTOGGLE:翻轉寄存器 。例如 GPATOGGLE.GPIOx = 1:強制設置端口電平反轉。詳見:P153-P155

0:無效

1:有效

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章