OpenEdv-开源电子网
标题:
emwin循环绘制波形图死机问题
[打印本页]
作者:
hdchenwenhao
时间:
2020-12-1 16:04
标题:
emwin循环绘制波形图死机问题
循环使用绘制波形的函数会死机,且死机时间不定函数如下:
datas:显示的数据,dataNums:数据个数。
static void _AddGraphValues(uint16_t * datas,int dataNums,float zoom,float zoomY,int startPoint) {
unsigned i=0 ,j=0;
int avaDatasNum = dataNums-startPoint;
GRAPH_DATA_YT_Clear(_ahData[0]);//
emwin固件库接口
my_printf("dataNums:%d,zoom:%f,zoomY:%f,startP:%d", dataNums,zoom,zoomY,startPoint);
for (j = 0; j <GraphWidth; j++) {
if(i==0){
#ifdef MAX_SAMPLE_GRAPH
int16_t tmp = 0;
for(int k = 0;k<zoom;k++){
int index = startPoint+zoom*j+k;
if(index>=dataNums)
datas[index]=0x7FFF;
tmp = datas[index]/200>tmp?datas[index]*zoomY/200:tmp;
}
_aValue
= tmp;
#else
_aValue
= datas[(int)(startPoint+j*zoom)]*zoomY/200;
#endif
if (_aValue
> MAX_VALUE) {
_aValue
= MAX_VALUE;
} else if (_aValue
< 0) {
aValue
=0x7FFF;
}
GRAPH_DATA_YT_AddValue(_ahData
, _aValue
); //
emwin固件库接口
}
}
}
里面有两个EMIWN的API接口,只有把两个都注释掉才能不死机,留下任意一个都会在一段时间后死机. _有试过把aValue
= datas[(int)(startPoint+j*zoom)]*zoomY/200;这一句改成aValue
= j%100;,这样做屏蔽了发送过来的数据,但还是死机。
作者:
正点原子
时间:
2020-12-2 02:14
帮顶
作者:
Cheng0717
时间:
2021-1-13 14:11
pc死机?还是单片机上
作者:
xfcjava3
时间:
2021-1-16 15:58
_ahData,在添加点数据时,数组过界了!!!
欢迎光临 OpenEdv-开源电子网 (http://47.111.11.73/)
Powered by Discuz! X3.4