TIwilliam hill官网
直播中

欧竞仲

7年用户 189经验值
私信 关注
[问答]

DSP5509完成将AIC23采集的数据保存到外扩SDRAM后,AIC23采集的数据是16bit有符号的数

昨天发了一篇帖子,为了解决将数据存储到外扩SDRAM中的问题,后来问题解决了,本来把方法已经回复到帖子中了,不知怎么就找不到了。稍后整理后,会再次把整个流程贴上来,以期起到抛砖引玉的作用,能给同样挣扎在入门阶段的新人些许思路。下面是我继续做数据读取时遇到的诡异的问题。
声明:
1、单独做SDRAM的存储于读取是没有问题的。
2、将AIC23采集的数据保存到SDRAM中是没有问题的。
代码:
//-----------------------------------向SDRAM中写入数据-----------------------------------
souraddr = (int *)0x40000; //起始地址
deminaddr = (int *)0x40030; //结束地址
while (souraddr < deminaddr)
[
        while (!MCBSP_rrdy(hMcbsp))[]; //接收就绪
        datacount = MCBSP_read16(hMcbsp); //接收数据
       *souraddr++ = datacount; //将接收到的数据保存到SDRAM中
        MCBSP_write16(hMcbsp,datacount);
]
for (j = 0;j < 10;j++)
[
        GPIO_RSET(IODATA,0xFE); //开发板D10亮
        delay(1000000);
        GPIO_RSET(IODATA,0xFF); //开发板D10灭
        delay(1000000);
]
//-----------------------------------读出SDRAM中数据--------------------------------------
souraddr = (int *)0x40000;
deminaddr = (int *)0x40030; //结束地址
datacount = 0;
while (souraddr < deminaddr)
[
        databuffer[datacount++] = *souraddr++; //把数据从SDRAM中取出,放到数组中
        MCBSP_write16(hMcbsp,databuffer[datacount++]); //发送数据给AIC23
]
while(1);
问题现象:
存进数组的数据分布如下图所示:

问题补充:
1、AIC23采集的数据是16bit有符号的数
2、unsigned int datacount = 0;        int databuffer[5000] =[0];
请问这种问题,可能是什么原因导致的???

回帖(2)

余少虹

2019-2-12 11:44:00
MCBSP_write16(hMcbsp,databuffer[datacount++]); 这句话让datacount又加了1, 所以下一次就存数据就隔开了一个。
举报

欧竞仲

2019-2-12 11:52:44
引用: vuywsdfwf 发表于 2019-2-12 17:09
MCBSP_write16(hMcbsp,databuffer[datacount++]); 这句话让datacount又加了1, 所以下一次就存数据就隔开了一个。

确实如此,谢谢!!!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分