Some weird error passing an array to a function?

https://dl.dropboxusercontent.com/u/72694548/_8x8rgb.ino here's my program (unfinished yet); I'm getting some weird error and can't figure out what causes it... the program is for a 8x8 matrix + 5 buttons + a switch; concept is that you turn on a slider switch, then edit "frames" by scrolling next led/previous led with two pushbuttons, next frame/previous frame with another two and toggle the colour with another pushbutton. Then you release the switch and it plays it back. Can someone help me fix that mistake?

What mistake? You say you have errors, but you don't say what they are.

Uhh, lots of equal errors about too few arguments... Ive added the source, try compiling to see maybe?

Rob3rt: Uhh, lots of equal errors about too few arguments... Ive added the source, try compiling to see maybe?

How about you follow directions instead, and post the errors? Not everyone has access to the Arduino IDE when they are on these forums.

From a cursory look, it appears as though you call the lightUp function with only 1 argument in a few places. It requires 2.

Rob3rt: try compiling to see maybe?

No. You need to post your actual code (in its entirety) and the actual errors you got when you tried to build it, if you want help diagnosing the problem.

His error is that he has a 4 dimentional array (recording), and for one, it is TOO big, and two, he doesn’t always call it the correct way.

This is his code. I refuse to clean it up, he can do that himself, and repost it.

unsigned int pos[8] = {22, 23, 24, 25, 26, 27, 28, 29};
unsigned int negR[8] = {38, 39, 40, 41, 42, 43, 44, 45};
unsigned int negG[8] = {30, 31, 32, 33, 34, 35, 36, 37};
unsigned int negB[8] = {46, 47, 48, 49, 50, 51, 52, 53};

int DURATION = 500;

bool modes[8][3] = {{0, 0, 0}, {1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {1, 1, 0}, {1, 0, 1}, {0, 1, 1}, {1, 1, 1}};

unsigned int record = 7;
unsigned int toggle = 12;
unsigned int next = 10;
unsigned int previous = 11;
unsigned int nextF = 8;
unsigned int previousF = 9;

bool set[8][8][3] = {
{{1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {0, 1, 0}, {1, 0, 0}, {0, 1, 0}, {0, 1, 1}, {0, 0, 1}}, {{0, 1, 0}, {0, 0, 1}, {0, 1, 0}, {1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {0, 1, 0}, {1, 0, 0}}, {{0, 0, 1}, {0, 1, 0}, {1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {0, 1, 0}, {1, 0, 0}, {0, 1, 0}}, {{0, 1, 0}, {0, 0, 1}, {0, 1, 0}, {1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {0, 1, 0}, {1, 0, 0}},
{{1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {0, 1, 0}, {1, 0, 0}, {0, 1, 0}, {0, 1, 1}, {0, 0, 1}}, {{0, 1, 0}, {0, 0, 1}, {0, 1, 0}, {1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {0, 1, 0}, {1, 0, 0}}, {{0, 0, 1}, {0, 1, 0}, {1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {0, 1, 0}, {1, 0, 0}, {0, 1, 0}}, {{0, 1, 0}, {0, 0, 1}, {0, 1, 0}, {1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {0, 1, 0}, {1, 0, 0}}
};

bool recording[170][8][8][3];

void off() {
  for (int i = 0; i < 8; i++) {
    digitalWrite(pos[i], LOW);
    pinMode(negR[i], INPUT);
    pinMode(negG[i], INPUT);
    pinMode(negB[i], INPUT);
  }
}

void lightUp (bool sets[8][8][3], int duration) {
  off();
  for (int i = 0; i < duration / 2; i++) {
    for (int j = 0; j < 8; j++) {
      for (int k = 0; k < 8; k++) {
        if (sets[j][k][0]) {
          digitalWrite(pos[j], HIGH);
          pinMode(negR[k], OUTPUT);
          delayMicroseconds(10);
          pinMode(negR[k], INPUT);
        }
      }
      digitalWrite(pos[j], LOW);
    }
    
    for (int j = 0; j < 8; j++) {
      for (int k = 0; k < 8; k++) {
        if (sets[j][k][1]) {
          digitalWrite(pos[j], HIGH);
          pinMode(negG[k], OUTPUT);
          delayMicroseconds(10);
          pinMode(negG[k], INPUT);
        }
      }
      digitalWrite(pos[j], LOW);
    }
    
    for (int j = 0; j < 8; j++) {
      for (int k = 0; k < 8; k++) {
        if (sets[j][k][2]) {
          digitalWrite(pos[j], HIGH);
          pinMode(negB[k], OUTPUT);
          delayMicroseconds(10);
          pinMode(negB[k], INPUT);
        }
      }
      digitalWrite(pos[j], LOW);
    }
    delayMicroseconds(500);
  }
}

void setup() {
  for (int i = 0; i < 8; i++)
    pinMode(pos[i], OUTPUT);
  Serial.begin(9600);
  Serial.println("begin");
}

void doNothing(){};

int lastF = 0, currentF = 0, current = 0, mode = 0;


void loop() {
  if (digitalRead(record) == HIGH) {
    currentF = 0;
    current = 0;
    
    if (digitalRead(next) == HIGH) {
      current++;
      if (current > 63)
        current = 0;
      while (digitalRead(next) == HIGH)
      lightUp(recording[currentF]);
    }
    
    if (digitalRead(previous) == HIGH) {
      current--;
      if (current < 0)
        current = 63;
      while (digitalRead(previous) == HIGH)
        lightUp(recording[currentF]);
    }
    
    if (digitalRead(toggle) == HIGH) {
      mode++;
      if (mode > 7)
      mode = 0;
      for (int abc = 0; abc < 3; abc++);
      recording[currentF][current / 8][current % 8][abc] = modes[mode][abc];
    }  
  }
  
  else {
    for (int aa = 0; aa < lastF; aa++) {
      lightUp(recording[aa], DURATION);
    }
  }
  
}