我使用I2C 读取90*18AD值, 读取的数据不到2K 的数据量,但是我定义了adlvoldata[90][18]二维数组,存储读取的AD值,在我的UCOS系统里,每当使用转存储到二维数组的时候,系统都会死。。。 不知道是什么原因。
- OSSemPend(ReacPlateCirSem,5,&error); //反应盘旋转一周 信号
- if(error==OS_NO_ERR)
- {
- if(!(ReadReacPlateStatus(0x04,&Status,&cup,&errcode))) //读盘状态 比色杯号 错误码 状态(静止 运动)
- {
-
- AD_write(0xbe,0x55,0xb0,cup+0x59);
-
- if(!(AD_read(0xbe,4,i2c_data)))
- {
-
- }
-
- }
-
- while(I2cSendFlag==1) //读I2C 发送使能标志位
- {
- I2cSendFlag =0;
- if(I2C_Status==0) //i2c 状态
- {
- AdReadFlag =1; //AD读写标志位
- AD_write(0xbe,0x55,0xc0,0x00);
- for(int i=0;i<90;i++)
- {
- errcode = 0x00;
- if(i == 89)
- {
- errcode = 0xff;
- }
- if(AD_read(0xbe,19,i2cRevData)==1) //接收18个字节的AD值
- {
-
- if(PlateRotaCirRet==1) //反应盘旋转一周标志位置1
- {
- if(AdReadFlag ==1)
- {
- // ReturnADdata(i2cRevData,19,errcode); //返回90*18 个AD采样值
- for(int SaveCount=1;SaveCount<19;SaveCount++)
- {
- AdVolData[i][SaveCount]=i2cRevData[SaveCount];
- }
- }
- }
- }
- }
- AD_write(0xbe,0x55,0x71,0x00);
- }
- AD_write(0xbe,0x55,0x71,0x00);
- }
请各位大侠,多多帮忙。。。 十分感谢 在线期待、。。。。。。。。。。。。。。。。。。