|
参考论坛里面的程序自己用STM32的AD写了一个简单的示波器显示程序,现在显示的波形总是在闪烁,哪位知道是什么原因吗?
while (1)
{
for(aa=0;aa<400;aa++)
{
da[aa]=ADC_GetConversionValue(ADC1)/20;
for(bb=0;bb<100;bb++);
}
cc=1;
aa=0;
while(cc){
if(da[aa]<100&da[aa+1]>100) {
dd=aa;
for(bb=0;bb<320;bb++)
{
DrawPixel(da[aa],bb,red);
if(da[aa+1]-da[aa]>0)
{
ee=da[aa+1]-da[aa];
gg=ee>>1;
for(ff=1;ff<= gg;ff++)
{
DrawPixel(da[aa]+ff,bb,red);
DrawPixel(da[aa]+ee-ff,bb+1,red);
}
}
if(da[aa]-da[aa+1]>0)
{
ee=da[aa]-da[aa+1];
gg=ee>>1;
for(ff=1;ff<= gg;ff++)
{
DrawPixel(da[aa]-ff,bb,red);
DrawPixel(da[aa]-(ee-ff),bb+1,red);
}
}
aa++;
for(ee=0;ee<100;ee++);
}
aa=dd;
for(bb=0;bb<320;bb++)
{
DrawPixel(da[aa],bb,GREEN);
if(da[aa+1]-da[aa]>0)
{
ee=da[aa+1]-da[aa];
gg=ee>>1;
for(ff=1;ff<= gg;ff++)
{
DrawPixel(da[aa]+ff,bb,GREEN);
DrawPixel(da[aa]+ee-ff,bb+1,GREEN);
}
}
if(da[aa]-da[aa+1]>0)
{
ee=da[aa]-da[aa+1];
gg=ee>>1;
for(ff=1;ff<=gg;ff++)
{
DrawPixel(da[aa]-ff,bb,GREEN);
DrawPixel(da[aa]-(ee-ff),bb+1,GREEN);
}
}
aa++;
}
cc=0;
}
aa++;
if(aa>50) break;
}
}
} |
|