📄 adsample.c
字号:
{
if(AD.uchCurMinCount< 5) //15
{
AD.uchCurMinCount++;
k=29; //29
}
else
{
k=0;
for(i=29;i>=0;i--) //29
{
if((AD.uiMinGroup0[i]==uiCurGroupIndex)&&(s<AD.uiMinValue0[i]))
{
k=i;
break;
}
}
}
if(k!=0)
{
AD.uiMinValue0[k] = s;
AD.uiMinGroup0[k] = uiCurGroupIndex;
for(i=k-1;i>=0;i--)
{
if(s<=AD.uiMinValue0[i])
{
AD.uiMinValue0[i+1] = AD.uiMinValue0[i];
AD.uiMinGroup0[i+1] = AD.uiMinGroup0[i];
AD.uiMinValue0[i] = s;
AD.uiMinGroup0[i] = uiCurGroupIndex;
}
}
}
}
}
//------------------------Group Replacement-------------------
AD.uchCurMinCount=0;
AD.uchCurMaxCount=0;
if(AD.uiMaxValue0[4]>AD.uiMinValue0[4]) //9
{
AD.uiCurPKPKValue[0]=((AD.uiMaxValue0[4]-AD.uiMinValue0[4])*3+AD.uiLastPKPKValue[0])>>2;
}
else
{
AD.uiCurPKPKValue[0]=0;
}
AD.uiLastPKPKValue[0]=AD.uiCurPKPKValue[0];
i=0;
for(j=0;j<30;j++) //30
{
if((AD.uiMaxGroup0[j]!=uiPassedGroupIndex)&&(AD.uiMaxGroup0[j] < uiGroupNum))
{
AD.uiMaxGroup0[i]=AD.uiMaxGroup0[j];
AD.uiMaxValue0[i]=AD.uiMaxValue0[j];
i++;
}
}
while(i<30) //30
{
AD.uiMaxValue0[i] = 1;
i++;
}
i=0;
for(j=0;j<30;j++) //30
{
if((AD.uiMinGroup0[j]!=uiPassedGroupIndex)&&(AD.uiMinGroup0[j] < uiGroupNum))
{
AD.uiMinGroup0[i]=AD.uiMinGroup0[j];
AD.uiMinValue0[i]=AD.uiMinValue0[j];
i++;
}
}
while(i<30) //30
{
AD.uiMinValue0[i] = 4095;
i++;
}
FeedDog();
}
//*************************************************/
//* CH1 PKPK Value */
//*************************************************/
void CalculatePKPKValue1(unsigned int xdata *SrcData,unsigned int uiSampleLocation,unsigned int uiCurGroupIndex,unsigned int uiPassedGroupIndex,unsigned int uiGroupNum)
{
char i;
unsigned char j,k;
unsigned int s,m;
idata unsigned int xdata *PTR;
// PTR = SrcData + uiSampleLocation;
m = SrcData + uiSampleLocation + AD.uiGroupLength;
// for(m=0;m<AD.uiGroupLength;m++)
for(PTR = SrcData + uiSampleLocation;PTR<m;PTR++)
{
FeedDog();
// s = *(PTR + m);
s = *PTR;
//-------------------------------maximum value-------------------------
if(s>=AD.uiMaxValue1[29])
{
if(AD.uchCurMaxCount<15)
{
AD.uchCurMaxCount++;
k=29;
}
else
{
k=0;
for(i=29;i>=0;i--)
{
if((AD.uiMaxGroup1[i]==uiCurGroupIndex)&&(s>AD.uiMaxValue1[i]))
{
k=i;
break;
}
}
}
if(k!=0)
{
AD.uiMaxValue1[k] = s;
AD.uiMaxGroup1[k] = uiCurGroupIndex;
for(i=k-1;i>=0;i--)
{
if(s>=AD.uiMaxValue1[i])
{
AD.uiMaxValue1[i+1] = AD.uiMaxValue1[i];
AD.uiMaxGroup1[i+1] = AD.uiMaxGroup1[i];
AD.uiMaxValue1[i] = s;
AD.uiMaxGroup1[i] = uiCurGroupIndex;
}
else
{
break;
}
}
}
}
//-------------------------------minimum value------------------------------
if(s<=AD.uiMinValue1[29])
{
if(AD.uchCurMinCount<15)
{
AD.uchCurMinCount++;
k=29;
}
else
{
k=0;
for(i=29;i>=0;i--)
{
if((AD.uiMinGroup1[i]==uiCurGroupIndex)&&(s<AD.uiMinValue1[i]))
{
k=i;
break;
}
}
}
if(k!=0)
{
AD.uiMinValue1[k] = s;
AD.uiMinGroup1[k] = uiCurGroupIndex;
for(i=k-1;i>=0;i--)
{
if(s<=AD.uiMinValue1[i])
{
AD.uiMinValue1[i+1] = AD.uiMinValue1[i];
AD.uiMinGroup1[i+1] = AD.uiMinGroup1[i];
AD.uiMinValue1[i] = s;
AD.uiMinGroup1[i] = uiCurGroupIndex;
}
}
}
}
}
//------------------------Group Replacement-------------------
AD.uchCurMinCount=0;
AD.uchCurMaxCount=0;
AD.uiCurPKPKValue[1]=((AD.uiMaxValue1[14]+AD.uiMinValue1[14])*3/2+AD.uiLastPKPKValue[1])>>2;
AD.uiLastPKPKValue[1]=AD.uiCurPKPKValue[1];
i=0;
for(j=0;j<30;j++)
{
if((AD.uiMaxGroup1[j]!=uiPassedGroupIndex)&&(AD.uiMaxGroup1[j] < uiGroupNum))
{
AD.uiMaxGroup1[i]=AD.uiMaxGroup1[j];
AD.uiMaxValue1[i]=AD.uiMaxValue1[j];
i++;
}
}
while(i<30)
{
AD.uiMaxValue1[i] = 1;
i++;
}
i=0;
for(j=0;j<30;j++)
{
if((AD.uiMinGroup1[j]!=uiPassedGroupIndex)&&(AD.uiMinGroup1[j] < uiGroupNum))
{
AD.uiMinGroup1[i]=AD.uiMinGroup1[j];
AD.uiMinValue1[i]=AD.uiMinValue1[j];
i++;
}
}
while(i<30)
{
AD.uiMinValue1[i] = 4095;
i++;
}
FeedDog();
}
//*************************************************/
//* CH2 PKPK Value */
//*************************************************/
void CalculatePKPKValue2(unsigned int xdata *SrcData,unsigned int uiSampleLocation,unsigned int uiCurGroupIndex,unsigned int uiPassedGroupIndex,unsigned int uiGroupNum)
{
char i;
unsigned char j,k;
unsigned int s,m;
idata unsigned int xdata *PTR;
// PTR = SrcData + uiSampleLocation;
// for(m=0;m<AD.uiGroupLength;m++)
m = SrcData + uiSampleLocation + AD.uiGroupLength;
for(PTR = SrcData + uiSampleLocation;PTR < m;PTR++)
{
FeedDog();
// s = *(PTR + m);
s = *PTR;
//-------------------------------maximum value-------------------------
if(s>=AD.uiMaxValue2[29])
{
if(AD.uchCurMaxCount<5)
{
AD.uchCurMaxCount++;
k=29;
}
else
{
k=0;
for(i=29;i>=0;i--)
{
if((AD.uiMaxGroup2[i]==uiCurGroupIndex)&&(s>AD.uiMaxValue2[i]))
{
k=i;
break;
}
}
}
if(k!=0)
{
AD.uiMaxValue2[k] = s;
AD.uiMaxGroup2[k] = uiCurGroupIndex;
for(i=k-1;i>=0;i--)
{
if(s>=AD.uiMaxValue2[i])
{
AD.uiMaxValue2[i+1] = AD.uiMaxValue2[i];
AD.uiMaxGroup2[i+1] = AD.uiMaxGroup2[i];
AD.uiMaxValue2[i] = s;
AD.uiMaxGroup2[i] = uiCurGroupIndex;
}
else
{
break;
}
}
}
}
//-------------------------------minimum value------------------------------
if(s<=AD.uiMinValue2[29])
{
if(AD.uchCurMinCount<5)
{
AD.uchCurMinCount++;
k=29;
}
else
{
k=0;
for(i=29;i>=0;i--)
{
if((AD.uiMinGroup2[i]==uiCurGroupIndex)&&(s<AD.uiMinValue2[i]))
{
k=i;
break;
}
}
}
if(k!=0)
{
AD.uiMinValue2[k] = s;
AD.uiMinGroup2[k] = uiCurGroupIndex;
for(i=k-1;i>=0;i--)
{
if(s<=AD.uiMinValue2[i])
{
AD.uiMinValue2[i+1] = AD.uiMinValue2[i];
AD.uiMinGroup2[i+1] = AD.uiMinGroup2[i];
AD.uiMinValue2[i] = s;
AD.uiMinGroup2[i] = uiCurGroupIndex;
}
}
}
}
}
//------------------------Group Replacement-------------------
AD.uchCurMinCount=0;
AD.uchCurMaxCount=0;
if(AD.uiMaxValue2[4]>AD.uiMinValue2[4])
{
AD.uiCurPKPKValue[2]=((AD.uiMaxValue2[4]-AD.uiMinValue2[4])*3+AD.uiLastPKPKValue[2])>>2;
}
else
{
AD.uiCurPKPKValue[2]=0;
}
AD.uiLastPKPKValue[2]=AD.uiCurPKPKValue[2];
i=0;
for(j=0;j<30;j++)
{
if((AD.uiMaxGroup2[j]!=uiPassedGroupIndex)&&(AD.uiMaxGroup2[j] < uiGroupNum))
{
AD.uiMaxGroup2[i]=AD.uiMaxGroup2[j];
AD.uiMaxValue2[i]=AD.uiMaxValue2[j];
i++;
}
}
while(i<30)
{
AD.uiMaxValue2[i] = 1;
i++;
}
i=0;
for(j=0;j<30;j++)
{
if((AD.uiMinGroup2[j]!=uiPassedGroupIndex)&&(AD.uiMinGroup2[j] < uiGroupNum))
{
AD.uiMinGroup2[i]=AD.uiMinGroup2[j];
AD.uiMinValue2[i]=AD.uiMinValue2[j];
i++;
}
}
while(i<30)
{
AD.uiMinValue2[i] = 4095;
i++;
}
FeedDog();
}
//*************************************************/
//* CH3 PKPK Value */
//*************************************************/
void CalculatePKPKValue3(unsigned int xdata *SrcData,unsigned int uiSampleLocation,unsigned int uiCurGroupIndex,unsigned int uiPassedGroupIndex,unsigned int uiGroupNum)
{
char i;
unsigned char j,k;
unsigned int s,m;
idata unsigned int xdata *PTR;
m = SrcData + uiSampleLocation + AD.uiGroupLength;
for(PTR = SrcData + uiSampleLocation;PTR<m;PTR++)
{
FeedDog();
s = *PTR;
//-------------------------------maximum value-------------------------
if(s>=AD.uiMaxValue3[29])
{
if(AD.uchCurMaxCount<15)
{
AD.uchCurMaxCount++;
k=29;
}
else
{
k=0;
for(i=29;i>=14;i--)
{
if((AD.uiMaxGroup3[i]==uiCurGroupIndex)&&(s>AD.uiMaxValue3[i]))
{
k=i;
break;
}
}
}
if(k!=0)
{
AD.uiMaxValue3[k] = s;
AD.uiMaxGroup3[k] = uiCurGroupIndex;
for(i=k-1;i>=0;i--)
{
if(s>=AD.uiMaxValue3[i])
{
AD.uiMaxValue3[i+1] = AD.uiMaxValue3[i];
AD.uiMaxGroup3[i+1] = AD.uiMaxGroup3[i];
AD.uiMaxValue3[i] = s;
AD.uiMaxGroup3[i] = uiCurGroupIndex;
}
else
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -