Using structure in a function

Hi guys,

I can't find a mistake in this code, can you correct me or help me in there? First, I made a structure and declared 2D array of it.

Then I filled these arrays with data (I did it in setup, and I don't know why I couldn't do this "outside", the compiler wouldn't let me)

And then I wanted to make a function (outside of setup and loop), and this is strange, because compiler shows up "variable or field "move_to pos" declared void", "'dane' was not declared in this scope" and "expected primary-expression before int"

typedef struct
{
  int dir_pin;
  int step_pin;
  int polozenie;
} 
dane;


dane dioda[3][6];
int zadane_1[3][6];


void setup() {

  dioda[0][0].dir_pin = 22;
  dioda[0][0].step_pin= 23;
  dioda[0][1].dir_pin = 24;
  dioda[0][1].step_pin = 25;
  dioda[0][2].dir_pin = 26;
  dioda[0][2].step_pin = 27;
  dioda[0][3].dir_pin = 28;
  dioda[0][3].step_pin = 29;
  dioda[0][4].dir_pin = 30;
  dioda[0][4].step_pin = 31;
  dioda[0][5].dir_pin = 32;
  dioda[0][5].step_pin = 33;
  dioda[1][0].dir_pin = 34;
  dioda[1][0].step_pin = 35;
  dioda[1][1].dir_pin = 36;
  dioda[1][1].step_pin = 37;
  dioda[1][2].dir_pin = 38;
  dioda[1][2].step_pin = 39;
  dioda[1][3].dir_pin = 40;
  dioda[1][3].step_pin = 41;
  dioda[1][4].dir_pin = 42;
  dioda[1][4].step_pin = 43;
  dioda[1][5].dir_pin = 44;
  dioda[1][5].step_pin = 45;
  dioda[2][0].dir_pin = 46;
  dioda[2][0].step_pin = 47;
  dioda[2][1].dir_pin = 48;
  dioda[2][1].step_pin = 49;
  dioda[2][2].dir_pin = 50;
  dioda[2][2].step_pin = 51;
  dioda[2][3].dir_pin = 52;
  dioda[2][3].step_pin = 53;
  dioda[2][4].dir_pin = 2;
  dioda[2][4].step_pin = 3;
  dioda[2][5].dir_pin = 4;
  dioda[2][5].step_pin = 5;

  dioda[0][0].polozenie=0;
  dioda[0][1].polozenie=0;
  dioda[0][2].polozenie=0;
  dioda[0][3].polozenie=0;
  dioda[0][4].polozenie=0;
  dioda[0][5].polozenie=0;
  dioda[1][0].polozenie=0;
  dioda[1][1].polozenie=0;
  dioda[1][2].polozenie=0;
  dioda[1][3].polozenie=0;
  dioda[1][4].polozenie=0;
  dioda[1][5].polozenie=0;
  dioda[2][0].polozenie=0;
  dioda[2][1].polozenie=0;
  dioda[2][2].polozenie=0;
  dioda[2][3].polozenie=0;
  dioda[2][4].polozenie=0;
  dioda[2][5].polozenie=0;

  for (int i=0;i<3;i++){
    for(int j=0;j<6;j++){
      zadane_1[i][j]=250;
    }
  }




  Serial.begin(9600);
  pinMode(dioda[0][0].dir_pin, OUTPUT);
  pinMode(dioda[0][0].step_pin, OUTPUT);
  pinMode(dioda[0][1].dir_pin, OUTPUT);
  pinMode(dioda[0][1].step_pin, OUTPUT);
  pinMode(dioda[0][2].dir_pin, OUTPUT);
  pinMode(dioda[0][2].step_pin, OUTPUT);
  pinMode(dioda[0][3].dir_pin, OUTPUT);
  pinMode(dioda[0][3].step_pin, OUTPUT);
  pinMode(dioda[0][4].dir_pin, OUTPUT);
  pinMode(dioda[0][4].step_pin, OUTPUT);
  pinMode(dioda[0][5].dir_pin, OUTPUT);
  pinMode(dioda[0][5].step_pin, OUTPUT);
  pinMode(dioda[1][0].dir_pin, OUTPUT);
  pinMode(dioda[1][0].step_pin, OUTPUT);
  pinMode(dioda[1][1].dir_pin, OUTPUT);
  pinMode(dioda[1][1].step_pin, OUTPUT);
  pinMode(dioda[1][2].dir_pin, OUTPUT);
  pinMode(dioda[1][2].step_pin, OUTPUT);
  pinMode(dioda[1][3].dir_pin, OUTPUT);
  pinMode(dioda[1][3].step_pin, OUTPUT);
  pinMode(dioda[1][4].dir_pin, OUTPUT);
  pinMode(dioda[1][4].step_pin, OUTPUT);
  pinMode(dioda[1][5].dir_pin, OUTPUT);
  pinMode(dioda[1][5].step_pin, OUTPUT);
  pinMode(dioda[2][0].dir_pin, OUTPUT);
  pinMode(dioda[2][0].step_pin, OUTPUT);
  pinMode(dioda[2][1].dir_pin, OUTPUT);
  pinMode(dioda[2][1].step_pin, OUTPUT);
  pinMode(dioda[2][2].dir_pin, OUTPUT);
  pinMode(dioda[2][2].step_pin, OUTPUT);
  pinMode(dioda[2][3].dir_pin, OUTPUT);
  pinMode(dioda[2][3].step_pin, OUTPUT);
  pinMode(dioda[2][4].dir_pin, OUTPUT);
  pinMode(dioda[2][4].step_pin, OUTPUT);
  pinMode(dioda[2][5].dir_pin, OUTPUT);
  pinMode(dioda[2][5].step_pin, OUTPUT);

  digitalWrite(dioda[0][0].dir_pin,LOW);
  digitalWrite(dioda[0][1].dir_pin,LOW); 
  digitalWrite(dioda[0][2].dir_pin,LOW);
  digitalWrite(dioda[0][3].dir_pin,LOW);
  digitalWrite(dioda[0][4].dir_pin,LOW);
  digitalWrite(dioda[0][5].dir_pin,LOW);
  digitalWrite(dioda[1][0].dir_pin,LOW);
  digitalWrite(dioda[1][1].dir_pin,LOW); 
  digitalWrite(dioda[1][2].dir_pin,LOW);
  digitalWrite(dioda[1][3].dir_pin,LOW);
  digitalWrite(dioda[1][4].dir_pin,LOW);
  digitalWrite(dioda[1][5].dir_pin,LOW);
  digitalWrite(dioda[2][0].dir_pin,LOW);
  digitalWrite(dioda[2][1].dir_pin,LOW); 
  digitalWrite(dioda[2][2].dir_pin,LOW);
  digitalWrite(dioda[2][3].dir_pin,LOW);
  digitalWrite(dioda[2][4].dir_pin,LOW);
  digitalWrite(dioda[2][5].dir_pin,LOW);

  digitalWrite(dioda[0][0].step_pin,LOW);
  digitalWrite(dioda[0][1].step_pin,LOW); 
  digitalWrite(dioda[0][2].step_pin,LOW);
  digitalWrite(dioda[0][3].step_pin,LOW);
  digitalWrite(dioda[0][4].step_pin,LOW);
  digitalWrite(dioda[0][5].step_pin,LOW);
  digitalWrite(dioda[1][0].step_pin,LOW);
  digitalWrite(dioda[1][1].step_pin,LOW); 
  digitalWrite(dioda[1][2].step_pin,LOW);
  digitalWrite(dioda[1][3].step_pin,LOW);
  digitalWrite(dioda[1][4].step_pin,LOW);
  digitalWrite(dioda[1][5].step_pin,LOW);
  digitalWrite(dioda[2][0].step_pin,LOW);
  digitalWrite(dioda[2][1].step_pin,LOW); 
  digitalWrite(dioda[2][2].step_pin,LOW);
  digitalWrite(dioda[2][3].step_pin,LOW);
  digitalWrite(dioda[2][4].step_pin,LOW);
  digitalWrite(dioda[2][5].step_pin,LOW);

}

void move_to_pos (dane x[3][6],int zadane[3][6]){
  for(int i =0; i<3; i++){
    for (int j=0;j<6;j++){
      if(zadane[i][j]>x[i][j].polozenie)
        digitalWrite(x[i][j].dir_pin,HIGH);
else
  digitalWrite(x[i][j].dir_pin,LOW);}
}
}





void loop (){

}

Also, please don't be too harsh for me, I'm not a programming master... In fact, it's my first arduino project :slight_smile:

Post. Your. Code.
All. Of. It.

Edited.

Add:

void move_to_pos (dane x[3][6],int zadane[3][6]);

after the struct definition.

The IDE doesn't know how to manufacture function prototypes for functions using structs.