This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Passing 2-D array

I want to pass a 2-D array from one function to another function. I wrote the program but sometimes i get wrong values.

float Arr[81][10];
void Monitor_Slot1(void)
  {
     if(Slot_1 == 0)
       {
          Dev_Curr = fNewVREF_1 / Res;

          DevCurr_MinLimit = Dev_Curr - PassBand;

          DevCurr_MaxLimit = Dev_Curr + PassBand;

         //ROUTINE TO CHECK THE DEVICE VOLTAGE

           for(r=1;r<=20;r++)
             {
                fMonDevVol = 0.0;

                fMonDevVol = fReadVoltage(r);

                Arr[r][s]  = fMonDevVol;

                 if(s > 9)                                     {
                    s = 0;

                      flt_Average(Arr);
                   }

                Delay(100);
              }
        }
   }
void flt_Average(float arr[][10])
  {
     unsigned int u_min,u_max;
     unsigned int u,v;


average = 0.0; Ave[0] = 0.0;
if(Slot_1 == 0) {u_min = 1; u_max = 20;} if(Slot_2 == 0) {u_min = 21; u_max = 40;} if(Slot_3 == 0) {u_min = 41; u_max = 60;} if(Slot_4 == 0) {u_min = 61; u_max = 80;}
for(u=u_min;u<=u_max;u++) { for(v=0;v<10;v++) { average += arr[u][v]; } average /= 10;
Ave[u] = average;
if((u >= 61) && (u <= 80)) { SBUF= ' '; printf("\n aver is %1.2f",Ave[u]); TI = 0;
Delay(1000);
SBUF=' '; printf("\n u is %d",u); TI = 0;
Delay(1000); }
average = 0.0;
DevVol_Check(Ave,u); } return; }

In the function Monitor_Slot1(void) i am taking 10 sets of reading for each device. The total devices are 80.

After the 10 readings are taken i calculate the average of the readings. That is done in the second function flt_average().

For example let us assume that device number i.e 'i' is 5 and 10.

When i check the reading of this number it is correct.

But after passing to the flt_average function the average is showing either '0' or garbage number.

I dont know whether the method i followed for storing the number is correct and alos the way i passed an 2-D array is correct or not.

If this method is worng is there any other better method to do it?

Please suggest me.

0