unsigned int Max_Current=0;
unsigned int Min_Current=0;
unsigned int Unbalance_limit=10;
unsigned int Max_Deviation=0;
unsigned int Percentage_Unblance=0;
void Unbalance_Check()
{
Imean_Current=(Rph_Current+Yph_Current+Bph_Current)/3;
if((Rph_Current>Yph_Current)&&(Rph_Current>Bph_Current))
{
Max_Current=Rph_Current;
}else if((Yph_Current>Rph_Current)&&(Yph_Current>Bph_Current))
{
Max_Current=Yph_Current;
}else if((Bph_Current>Rph_Current)&&(Bph_Current>Yph_Current))
{
Max_Current=Bph_Current;
}else if((Yph_Current<Rph_Current)&&(Yph_Current<Bph_Current))
{
Min_Current=Yph_Current;
}else if((Rph_Current<Yph_Current)&&(Rph_Current<Bph_Current))
{
Min_Current=Rph_Current;
}
else if((Bph_Current<Yph_Current)&&(Bph_Current<Rph_Current))
{
Min_Current=Bph_Current;
}
Max_Deviation=Max_Current-Min_Current;
Percentage_Unblance=(int)((Max_Deviation/Imean_Current)*100);
if(Percentage_Unblance>Unbalance_limit)
{
CRUnblance_Flag=1;
}else
{
CRUnblance_Flag=0;
}
}