Bonjour a tous et merci d'avance a ceux qui pourront m'aider, je pense c'est pas compliqué c'est juste la première fois que j'essaye de manipuler des structures.
Mon programme est simple, je dois recevoir un chiffre a travers le port série, ici pour le test j'utilise le "serial monitor" puis ce chiffre me permet de chercher et afficher le contenue d'une structure de 5 bytes.
L'application est pour simplement charger différents paramètres (stockés dans chaque structure) quand mon appareil reçois un message de changement de paramètres ( changement de preset), le message en lui ne contient pas les parametres mais lui dis "charge ton preset N 5" par exemple.
Voici mon code :
char MidiPC, RX;
const char endMarker = '\n';
typedef struct {
byte FLG;
byte EXch1;
byte EXch2;
byte EXled1;
byte EXled2;
}PRESET;
PRESET PCreceived; // sers de tampon pour passer les parametres du tableau
static const PRESET MIDI_PRESET[] = { // le tableau avec les parametres
{0b00000000, 0, 0, 0b00000000, 0b00000000}, // ' 0 ' comme au demarrage, tout a zero
{0b11000000, 0, 0, 0b00000001, 0b00000000}, // ' 1 '
{0b11000000, 1, 0, 0b00000010, 0b00000000}, // ' 2 '
{0b11000000, 2, 0, 0b00000100, 0b00000000}, // ' 3 '
{0b11000000, 3, 0, 0b00001000, 0b00000000}, // ' 4 '
{0b11000000, 4, 0, 0b00010000, 0b00000000}, // ' 5 '
{0b00100000, 0, 0, 0b00100000, 0b00000000}, // ' 6 '
{0b11000000, 0, 0, 0b00000000, 0b00000001}, // ' 7 '
{0b00001100, 0, 1, 0b00000000, 0b00000010}, // ' 8 '
};
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Serial.println("what PC you want?");
}
void loop() {
// put your main code here, to run repeatedly:
if (Serial.available())
{
RX=Serial.read();
if (RX != endMarker)
{
MidiPC=RX;
PCreceived = MIDI_PRESET[MidiPC];
Serial.print("Program Change : ");
Serial.println(MidiPC);
Serial.print(" Exp Flags are : ");
Serial.println(PCreceived.FLG);
Serial.print(" Exp 1 chanel is : ");
Serial.println(PCreceived.EXch1);
Serial.print(" Exp 2 chanel is : ");
Serial.println(PCreceived.EXch2);
Serial.print(" Exp 1 leds are : ");
Serial.println(PCreceived.EXled1);
Serial.print(" Exp 2 leds are : ");
Serial.println(PCreceived.EXled2);
Serial.println( sizeof(MIDI_PRESET[MidiPC]));
RX=0;
return;
}
else return;
}
}