peakCentering version 1.6.1: fix bugs and add frmae lastSync
This commit is contained in:
parent
9d4db3772f
commit
f7ebcdb77e
@ -113,7 +113,7 @@ void peakCentering(
|
||||
if(0 == linePk.len)
|
||||
{
|
||||
if(linePk.value >= 240)
|
||||
pkCenter = RGN_DATA_WIN_SIZE/2;
|
||||
pkCenter = RGN_DATA_WIN_SIZE;
|
||||
else
|
||||
pkCenter = 0;
|
||||
}
|
||||
@ -147,6 +147,7 @@ void peakCentering(
|
||||
else//for(int i = 0; i < 8; i ++)
|
||||
{
|
||||
ap_uint<8> wrPos_0 = i * 2 - 2 + RGN_DATA_WIN_SIZE/2;
|
||||
ap_uint<8> lastPos = wrPos_0 -1;
|
||||
ap_uint<8> wrPos_1 = i * 2 - 1 + RGN_DATA_WIN_SIZE/2;
|
||||
ap_uint<8> rdPos_0 = pkCenter - RGN_DATA_WIN_SIZE/2 + i* 2 -2;
|
||||
ap_uint<8> rdPos_1 = pkCenter - RGN_DATA_WIN_SIZE/2 + i* 2 -1;
|
||||
@ -191,24 +192,24 @@ void peakCentering(
|
||||
}
|
||||
else
|
||||
{
|
||||
currPeak.start = wrPos_1;
|
||||
currPeak.len = 1;
|
||||
currPeak.value = data_1;
|
||||
currPeak.start = wrPos_0;
|
||||
currPeak.len = 2;
|
||||
currPeak.value = data_0;
|
||||
SM = 0b11;
|
||||
linePk.value = data_0; //record initial value
|
||||
}
|
||||
break;
|
||||
case 0b11: //wait state
|
||||
if(lastData < data_0)
|
||||
case 0b11: //horizontal state
|
||||
if(lastData < data_0) //rising
|
||||
{
|
||||
if(data_0 < data_1) //rising
|
||||
if(data_0 < data_1) //rising - rising. if i==8, data_1 is invalid peak,
|
||||
{
|
||||
currPeak.start = wrPos_1;
|
||||
currPeak.len = 1;
|
||||
currPeak.value = data_1;
|
||||
SM = 0b01;
|
||||
}
|
||||
else if(data_0 > data_1) //falling
|
||||
else if(data_0 > data_1) //rising - falling, data_0 is peak
|
||||
{
|
||||
if( (wrPos_0 >= pkRng_S) && (wrPos_0 <= pkRng_E) )
|
||||
{
|
||||
@ -218,7 +219,7 @@ void peakCentering(
|
||||
}
|
||||
SM = 0b10;
|
||||
}
|
||||
else //data_0 == data_1
|
||||
else //data_0 == data_1, if i==8, data_0 and data_1 is invalid peak,
|
||||
{
|
||||
currPeak.start = wrPos_0;
|
||||
currPeak.len = 2;
|
||||
@ -226,24 +227,21 @@ void peakCentering(
|
||||
SM = 0b01;
|
||||
}
|
||||
}
|
||||
else if(lastData > data_0)
|
||||
{
|
||||
if(data_0 < data_1) //peak is at edge (pos:0,1,2...), invalid
|
||||
{
|
||||
if( (lastData > data_0)&& (wrPos_0 > pkRng_S))
|
||||
else if(lastData > data_0) //falling
|
||||
{
|
||||
if((currPeak.start >= pkRng_S) && (lastPos <= pkRng_E))
|
||||
linePk = currPeak;
|
||||
}
|
||||
|
||||
if(data_0 < data_1) //falling - rising, peak is at lastData (pos:0,1,2...), invalid
|
||||
{
|
||||
currPeak.start = wrPos_1;
|
||||
currPeak.len = 1;
|
||||
currPeak.value = data_1;
|
||||
SM = 0b01;
|
||||
}
|
||||
else if(data_0 >= data_1)//falling
|
||||
{
|
||||
else// if(data_0 >= data_1)//falling, peak is at lastData
|
||||
SM = 0b10;
|
||||
}
|
||||
}
|
||||
else //lastData == data_0
|
||||
{
|
||||
if(data_0 < data_1) //rising
|
||||
@ -256,6 +254,12 @@ void peakCentering(
|
||||
}
|
||||
else if(data_0 > data_1) //falling
|
||||
{
|
||||
if( (currPeak.start >= pkRng_S) && (wrPos_0 >= pkRng_S))
|
||||
{
|
||||
linePk.start = currPeak.start;
|
||||
linePk.len = currPeak.len + 1;
|
||||
linePk.value = currPeak.value;
|
||||
}
|
||||
SM = 0b10;
|
||||
}
|
||||
else
|
||||
@ -265,13 +269,13 @@ void peakCentering(
|
||||
case 0b01: //rising
|
||||
if(lastData < data_0)
|
||||
{
|
||||
if(data_0 <= data_1)
|
||||
if(data_0 < data_1)
|
||||
{
|
||||
currPeak.start = wrPos_1;
|
||||
currPeak.len = 1;
|
||||
currPeak.value = data_1;
|
||||
}
|
||||
else if(data_0 > data_1) //change to falling
|
||||
else if(data_0 > data_1) //change to falling, compare with exist
|
||||
{
|
||||
if( (wrPos_0 >= pkRng_S) && (wrPos_0 <= pkRng_E) && (data_0 >linePk.value ))
|
||||
{
|
||||
@ -291,7 +295,7 @@ void peakCentering(
|
||||
else if(lastData > data_0)
|
||||
{
|
||||
//compare with exist
|
||||
if( (preCenter >= pkRng_S) && (preCenter <= pkRng_E) && (currPeak.value > linePk.value))
|
||||
if( (currPeak.start >= pkRng_S) && (lastPos <= pkRng_E) && (currPeak.value > linePk.value))
|
||||
{
|
||||
linePk = currPeak;
|
||||
}
|
||||
@ -314,7 +318,7 @@ void peakCentering(
|
||||
}
|
||||
else if(data_0 > data_1)
|
||||
{
|
||||
if( (preCenter_1 >= pkRng_S) && (preCenter_1 <= pkRng_E) && (currPeak.value > linePk.value))
|
||||
if( (currPeak.start >= pkRng_S) && (wrPos_0 = pkRng_E) && (currPeak.value > linePk.value))
|
||||
{
|
||||
linePk.start = currPeak.start;
|
||||
linePk.value = currPeak.value;
|
||||
@ -327,7 +331,7 @@ void peakCentering(
|
||||
currPeak.len += 2;
|
||||
if(i == 8) //last one
|
||||
{
|
||||
if( (currPeak.start <= pkRng_E) && (currPeak.value > linePk.value))
|
||||
if( (currPeak.start >= pkRng_S) && (wrPos_1 <= pkRng_E) && (currPeak.value > linePk.value))
|
||||
{
|
||||
linePk = currPeak;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user