導航:首頁 > 數據分析 > dsp中如何讀寫數據

dsp中如何讀寫數據

發布時間:2023-05-13 21:56:22

㈠ DSP中如何用匯編指令讀寫一個全局變數

LDW和銀肆態STW都是以地址來作為讀取和存儲的。你需要得到這個變數的地址,雹氏然鋒源後才能用ldw和stw來進行讀寫操作。

㈡ 有誰用DSP做過數字圖像處理嗎圖像咋讀取_基於dsp的圖像處理

要用CCS看bmp的舉搭信息的,什麼大小,像歷輪素....

這有一個程序,但不知為何無限循環

#include"stdio.h"

#include"stdlib.h"

typedefcharElemType;

structImgInfo

{unsignedshortImgBitType;//圖像位數(色深xbit)

unsignedshortBmpHeight;//圖像高度

unsignedshortBmpWidth;//圖像寬度

unsignedshortBmpDataPos;//圖像數據的起始位置

unsignedlongBmpSize;//圖像數據大小

unsignedlong;//圖像是否壓縮

};

voidGetBmpInfo(FILE*fpBmp,structImgInfo*ImgInfo1)//獲取bmp信息,返回圖像數據所含位元組數OK

{

fseek(fpBmp,0,0);//讀取圖像數據的起始位置

fread(&ImgInfo1->BmpDataPos,2,1,fpBmp);

getchar();

}

voidReadImgData(FILE*fpBmp,structImgInfo*ImgInfo1,char*BmpData)//將bmp圖像數據讀入BmpData中

{

fseek(fpBmp,ImgInfo1->BmpDataPos,0);//文件指針移動到圖像數據起始位置

fread(BmpData,ImgInfo1->BmpSize,1,fpBmp);

}

voidCnvt24bit()

{

FILE*fpBmp;//文件指針

structImgInfoImgInfo1;//儲存圖正爛拿像信息

char*BmpData;//儲存圖像數據

fpBmp=fopen("C:/ti/examples/sim62xx/xdais/firtest/xiaotu.bmp","rb");if(fpBmp==NULL){printf("Erropenfile");getchar();}//打開bmp文件

GetBmpInfo(fpBmp,&ImgInfo1);//獲bmp信息

BmpData=(char*)malloc(ImgInfo1.BmpSize);if(BmpData==NULL){printf("ErrMalloc");getchar();}//注意要強制轉換類型

ReadImgData(fpBmp,&ImgInfo1,BmpData);//讀取BMP圖像數據

fclose(fpBmp);

getchar();

}

voidmain()

{

Cnvt24bit();

}

㈢ DSP中對ST0(狀態寄存器)的讀寫操作的具體指令是什麼

對於5系列,虧搭狀態寄存器裡面不是所有位裂跡都可以寫,STO中OVA,OVB可以用置位指令SSBX和復位指令RSBX設置,例如
SSBX SXM; 符號擴展SXM=1
RSBX SXM; 禁止符號擴展SXM=0
讀可以通過CCS->view->registers->cpu registers 看到CPU的主要寄存器的值。或者查看寄存器所對應肆空並的地址的值。

㈣ 能否從dsp中讀取out文件,如何讀取

不能讀取,.out文件時執行文件,是CCS軟體編輯後生成的文件,只能在dsp的開發板或者CCS模擬界面才能運行。希望對你有幫助。

㈤ DSP 如何存儲運行過程中的數據啊

方法有很多, 我最常用的方法是加一正仔仔個EEPROM, 將數據存放到EEPROM里, 即使斷電,數據也不會丟失.

如果數據修改非常的頻繁, EEPROM也有可能故障, 因為一般的EEPROM的寫入次數可能就舉汪有100萬次. 這種情況下我一般會用戚物一個鐵電存儲器, 比如FM25L16等等, 沒有寫入次數的限制, 基本上可以無限次數的讀寫.

㈥ 如何在dsp運行時改寫裡面的數據,並且生效時使用

dsp運行時不能對其進行程序數據改動,一般是在程序裡面添歷廳加閉環演算法,程序自動讀數據然後控制電機,整個過程由dsp自動完成,達到電機自動控制的目的。即使在線模擬也是要停止運行mpu,下程序,然後才能再伏罩次運行新程序。肢廳隱

㈦ DSP28335控制12864液晶,讀取LCD數據,lcd_read_data程序應該怎麼編寫

您好,1. 首先是介面的預定義

----------------------------------------------
#define LCD_DATA (*((volatile Uint16 *)0x0070E0)) // GPIOA7-A0對應DB7-DB0

#define RS GpioDataRegs.GPBDAT.bit.GPIOB0
#define RW GpioDataRegs.GPBDAT.bit.GPIOB1 //別弄錯0 1 2
#define EN GpioDataRegs.GPBDAT.bit.GPIOB2 // 實際接線要對應

void InitGpio(void)
{
EALLOW;
GpioMuxRegs.GPAMUX.bit.PWM1_GPIOA0 = 0; // 設置為普通GPIO使用
GpioMuxRegs.GPADIR.bit.GPIOA0 = 1; // 設置為輸出

GpioMuxRegs.GPAMUX.bit.PWM2_GPIOA1 = 0;
GpioMuxRegs.GPADIR.bit.GPIOA1 = 1;

GpioMuxRegs.GPAMUX.bit.PWM3_GPIOA2 = 0;
GpioMuxRegs.GPADIR.bit.GPIOA2 = 1;

GpioMuxRegs.GPAMUX.bit.PWM4_GPIOA3 = 0;
GpioMuxRegs.GPADIR.bit.GPIOA3 = 1;
GpioMuxRegs.GPAMUX.bit.PWM5_GPIOA4 = 0;
GpioMuxRegs.GPADIR.bit.GPIOA4 = 1;

GpioMuxRegs.GPAMUX.bit.PWM6_GPIOA5 = 0;
GpioMuxRegs.GPADIR.bit.GPIOA5 = 1;

GpioMuxRegs.GPAMUX.bit.T1PWM_GPIOA6 = 0;
GpioMuxRegs.GPADIR.bit.GPIOA6 = 1;

GpioMuxRegs.GPAMUX.bit.T2PWM_GPIOA7 = 0;
GpioMuxRegs.GPADIR.bit.GPIOA7 = 1;

GpioMuxRegs.GPBMUX.bit.PWM7_GPIOB0 = 0;
GpioMuxRegs.GPBDIR.bit.GPIOB0 = 1;

GpioMuxRegs.GPBMUX.bit.PWM8_GPIOB1 = 0;
GpioMuxRegs.GPBDIR.bit.GPIOB1 = 1;

GpioMuxRegs.GPBMUX.bit.PWM9_GPIOB2 = 0;
GpioMuxRegs.GPBDIR.bit.GPIOB2 = 1;
EDIS;
}

----------------------------------------------
一般液晶的控制線是直接對I/O口的位進行操作,數據線是按字進行操作。在這容易出錯的是:(1)數據線地址的對應。DSP的GPIO數據地址一般為16位一個地址(F28335有的是32個GPIO一組,給出了一個地址,實際上是有兩個地址的,給出的那一個地址是低16位的)。需要注意的是,液晶數據線一般為8位,那麼把八位數據送出的時候,實際給的是DSP的16位數據的低八位,所以接線上要接低八位的GPIO;如果接高八位的GPIO,軟體上要用下面一行程序進行移位【 dat = dat << 8; //左移8位,向高位移動】。(2)在進行GPIO初始化和預定義的時候,一般都會復制,但是別忘記改一些0 1 2 3等數,接線上也要一一對應,仔細檢查。
2. 51程序移植到DSP的時序問題
----------------------------------------------
void Display_Data_All(uchar *hz)
{
while(*hz != '\0')
{
WriteData12864(*hz);
hz++;
delay(20);//2就不夠!!!!!!
}
}
----------------------------------------------
由於51單片機的晶振一般為11.0592MHz,而DSP等控制器的晶振為30MHz,實際執行起來最高有150MHz,而液晶為低速外設,所以移植後可能會不顯示,顯示亂碼等情況。我在調試12864液晶的時候就出現過只顯示亂碼數字不顯示漢字的情況,這不是字型檔損壞,而是因為寫漢字的時間要比寫數字的時間長,而程序中延時過短。上面程序中把delay(2)改為delay(20)就解決問題了。
實際上,真正造成影響的是,程序執行過快。它認為顯示完一個字之後,又很快進入下一個字的操作;實際上液晶要一定的時間才能寫完(見液晶操作時序圖),所以寫數據的程序中要加長延時。至於RS、RW、EN等控制引腳,延時與否影響不大。
3. 240128液晶的調試
240128液晶有busy和int返回信號,實際上不需要接即可。程序中也可以不測忙。。程序中寫控制指令兩者中間也要加長延時,更不用說寫數據之間的延時。
----------------------------------------------
void lcd_regwrite(Uint16 regname,Uint16 regdata) // 寫控制指令
{
lcd_regwr(regname);
delay(10); // 加長延時
lcd_regwr(regdata);
}

void lcd_character(uchar *cha,int count) // 顯示中文或字元
{
int i;
for(i=0;i<count;i++)
{
delay(10); // 加長延時
lcd_datawrite(*cha);
++cha;
}
}

閱讀全文

與dsp中如何讀寫數據相關的資料

熱點內容
數據驗證對話框中選項有哪些 瀏覽:218
word文件半隱半現 瀏覽:971
xml文件如何解析 瀏覽:391
pcapng格式的文件用什麼打開 瀏覽:530
百度網盤的文件怎麼傳入u盤 瀏覽:781
梨子linux 瀏覽:30
office2013找不到文件 瀏覽:877
msp430獨立按鍵程序 瀏覽:592
如何固定表格數據的位數 瀏覽:544
編程貓項目分析的思路有哪些 瀏覽:927
編程能玩什麼游戲 瀏覽:13
怎麼用win10鏡像 瀏覽:552
10歲沒接觸編程學什麼程序好 瀏覽:375
jsselect必填 瀏覽:784
python學習編程需要什麼基礎 瀏覽:114
ug打開文件找不到 瀏覽:859
獲取登錄數據失敗怎麼解決 瀏覽:30
極迅加速沒網路 瀏覽:766
京東代升級 瀏覽:488
開源篩選工具 瀏覽:840

友情鏈接