探索者做了一示波器,想把波形定住不动遇到点问题,求大神相助

2019-07-20 10:34发布

看图,


  1. 蓝 {MOD}波形为ADC采样直接送入显示,中间不经过定形处理
  2.红 {MOD}波形为定在上升沿之后的效果,但是效果不好,波形有时候会时不时的断掉。
定形的处理方法,直接看程序吧:#define ADC_Point 832//13个周期,每个周期64点
#define ADC_Point_Graph 640//一屏显示十个周期,64*10
[mw_shl_code=applescript,true]static void _AddValues1(void) {
uint16_t i,j,k;
uint32_t temp;
uint16_t ADC_temp[ADC_Point];

for(i=0;i<ADC_Point;i++)//用了13个周期,求出零点
{       
temp+=ADC_valend;
}
ADC_zero=temp/ADC_Point;//零点
//        ADC_zero=FifoAvr(&ADC_temp[0],5,ADC_zero);//对零点进行fifo滤波,fifo为5,但是发现没啥效果。。。
for(i=0;i<ADC_Point;i++)
{
if(ADC_zero==ADC_valend)//找到零点的位置,j
{
j=i;break;
}
}
//判断上升沿
//如果零点的值>零点前面三个的值
//如果零点的值>零点前面两个的值
//如果零点的值==前面算出零点的值
if(ADC_valend[j] > ADC_valend[j-3] && ADC_valend[j] > ADC_valend[j-2] && ADC_valend[j] == ADC_zero)
{       
for(i=j;i<j+ADC_Point_Graph;i++)//从零点开始显示(i=j;),显示一屏 640点
{
_aValue1[0]=ADC_valend/15;
GRAPH_DATA_YT_AddValue(_ahData1[0], _aValue1[0]);       
}
}       
}[/mw_shl_code]

显示的效果,中间时不时的就会出现断的情况。

请各位大神指教!!!

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。