介面設計專題實務 Object Teaching of Interface Design 實驗二 資料儲存實驗
description
Transcript of 介面設計專題實務 Object Teaching of Interface Design 實驗二 資料儲存實驗
介面設計專題實務 Object Teaching of Interface Design
實驗二 資料儲存實驗
授課教師:任才俊
實驗目的 • (a) 掌握 TMS320F2812 程式空間的分置。• (b) 掌握 TMS320F2812 資料空間的分置。• (c) 能夠熟練運用 TMS320F2812 資料空間
的指令。
實驗說明 • 本實驗程式將對 0x003F9020H 開始的 8 個
位址空間,填寫入 0xAAAA 的數值,然後讀出,並儲存到 0x003f9028H 開始的 8個位址空間。
實驗步驟 (1) Step1 :加入檔案於專案中,並進行編譯,接著點選 File->Load Program 功能表下載入 Debug 目錄下的檔名 .out 檔案。
實驗步驟 (2) Step2 :載入完畢後,點選 View->Memory 查看記憶體單元,並輸入要查看的記憶體單元位址,本實驗要查看 0x003F9020H~0x3F902FH 單元數值變化,輸入位址 0x003F9020H ,如下圖所示。
實驗步驟 (3) Step3 :查看 0x003F9020H~0x3F902FH 單元的初始值,單擊 Run 執行程式,也可以“單步”執行程式。
實驗步驟 (4) Step4 :觀察實驗結果,查看 0x003F9020H~0x003F902F 單元內數值的變化。
//------------------頭文件 -------------------------------------//#include "DSP281x_Device.h" // DSP281x Headerfile Include File#include "DSP281x_Examples.h" // DSP281x Examples Include File
//------------------主程序 -------------------------------------//void main(void){
int i; volatile unsigned int *room = (volatile unsigned int *)0x3f9020;volatile unsigned int *room2= (volatile unsigned int *)0x3f902F;
// Initialize System Control:// PLL, WatchDog, enable Peripheral ClocksInitSysCtrl();
// Disable CPU interrupts DINT;
// Disable CPU interrupts and clear all CPU interrupt flags:IER = 0x0000;IFR = 0x0000;
for(;;){
/*xf管腳置低 */asm(" clrc xf");
for(p=0;p<10000;p++)for(q=0;q<100;q++);
/*xf管腳置高 */asm(" setc xf");
for(p=0;p<10000;p++)for(q=0;q<100;q++);
}}
/* 將 0xAAAA寫入從數據空間的地址 0x3f9020開始的 8個單元中 */for(i=0;i<8;i++)
{*room=0xAAAA;room++;
}
/* 從 0x3f9020開始的 8個空間讀出數據依次寫入從 0x3f9028開始的 8個單元中 */for(i=0;i<8;i++) {
*room2=*(room-1); room--;room2--;
}}
練習題• 試將 0x003F9020H~0x003F9027 單元內數值填入 0~7 ;而在 0x003F9028H~0x003F902F單元內數值分別填入 F 、 E 、 D 、 C 、 B、 A 、 9 、 8 。