导航:首页 > 数据分析 > 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中如何读写数据相关的资料

热点内容
视频下载目录文件管理怎么找 浏览:405
局域网内共享文件夹 浏览:389
java接口能实现接口吗 浏览:460
怎么把文件拖拽到ps里 浏览:245
绘画编程是学的什么 浏览:919
小蚁微单m1升级版 浏览:646
有什么app会被人收购 浏览:709
经济开发区数据标定员考试考什么 浏览:145
类似于vb编程的有哪些语言 浏览:684
数据验证对话框中选项有哪些 浏览:218
word文件半隐半现 浏览:971
xml文件如何解析 浏览:391
pcapng格式的文件用什么打开 浏览:530
百度网盘的文件怎么传入u盘 浏览:781
梨子linux 浏览:30
office2013找不到文件 浏览:877
msp430独立按键程序 浏览:592
如何固定表格数据的位数 浏览:544
编程猫项目分析的思路有哪些 浏览:927
编程能玩什么游戏 浏览:13

友情链接