salve,
ho messo le variabili come globali.
a parte questo, se vado a compilare il il codice ed arduino mi da degli errori nella compilazione, che sono i seguenti:
bozza_midi_sw.cpp : In function 'void loop()':
bozza_midi_sw.cpp : 73:34:error: expected primary-expression before ']' token
mentre questo è il codice:
/*
bozza midi_sw
*/
#include <MIDI.h>
#include <EEPROM.h>
int antirimbalso=30;
int led[5]= {2,3,4,5,6};
int sw[5]= {8,9,10,11,12};
int led_state[5]={0,0,0,0,0};
int sw_state[5]={0,0,0,0,0};
int sw_store=13;
int ssw_store=0;
int led_store=7;
byte statoLed=0;
int addr=0;
byte indirizzo=0;
byte led_st;
//funzioni
//-----------------------------xor print
void xorPrint(int sw, int rel)
{
if(digitalRead(rel)==LOW)
{digitalWrite(rel,HIGH);
}
else
{digitalWrite(rel,LOW);}
}
//-------------------------------------------aggiorna led
void aggiorna_led(byte led,int Led_state[])
{ for(int i =0;i<5;i++)
{ int j=i+2;
if(bitRead(led,j)==0)
{Led_state[i]=0;}
else
{Led_state[i]=1;}
}
}
//setup
void setup()
{
MIDI.begin();
int i=0;
for(i=0;i<5;i++)
{pinMode(led[i],OUTPUT);}
pinMode(led_store,OUTPUT);
i=0;
for(i=0;i<5;i++)
{pinMode(sw[i],INPUT);}
pinMode(sw_store,INPUT);
}
void loop()
{
if (MIDI.read()) { // Is there a MIDI message incoming ?
switch(MIDI.getType()) { // Get the type of the message we caught
case ProgramChange: // If it is a Program Change
indirizzo= MIDI.getData1();
default:
break;
}
// leggo la locazione indirizzo dalla eeprom
byte led_stat = EEPROM.read(indirizzo);
//aggiorno lo stato dei led
aggiorna_led(led_stat,led_state[]);
}
int j;
for(j=0;j<5;j++)
{
sw_state[j]=digitalRead(sw[j]);
}
int ssw_store=digitalRead(sw_store);
if(sw_state[0]==LOW||sw_state[1]==LOW||sw_state[2]==LOW||sw_state[3]==LOW||sw_state[4]==LOW)
{
delay(antirimbalso);
for(j=0;j<5;j++)
{
if(sw_state[j]==0)
{xorPrint(sw[j],led[j]);}
}
}
}
l'errore di compilazione sparisce, se levo le parentesi quadre alla variabile led_state[] , quando richiamo la funzione "aggiorna_led", facendola diventare così;
aggiorna_led(led_stat,led_state);
ma a questo punto non so se va bene per il mio scopo, dato che voglio passare un array e non una variabile!
fatemi sapere vi ringrazio!