Projet de BAC urgent. Demande d'aide: initializer fails to determine size of ...

Bonjour la communauté :slight_smile: !

Je viens tout juste de m'inscrire car j'ai réellement besoin de vos lumières ^^
Jusqu'à maintenant je faisais que du Java, et pour mon projet de bac j'ai dû me mettre à l'Arduino.

J'ai donc de bonnes bases en programmation mais j'ai encore du mal à m'adapter à la nouvelle syntaxe...

Mon programme à pour but de coder une trame MIDI (en hexadecimal). Ma première trame contient seulement une note donc j'ai seulement besoin d'intégrer ma note dans une trame.

Voici mon code:

void loop() {

  long trame[] = trameNoteSimple(0x3C, 0x40, 0x40);

}

long trameNoteSimple(long note, long velocity, long duration) {
  long tr[] = { 0x4D, 0x54, 0x68, 0x64, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00,
      0x00, 0x01, 0x01, 0xE0, 0x4D, 0x54, 0x72, 0x6B, 0x00, 0x00, 0x00,
      0x60, 0x00, 0xFF, 0x51, 0x03, 0x09, 0x27, 0xC0, 0x00, 0xFF, 0x03,
      0x05, 0x50, 0x69, 0x61, 0x6E, 0x6F, 0x00, 0xFF, 0x58, 0x04, 0x04,
      0x02, 0x18, 0x08, 0x00, 0xFF, 0x59, 0x02, 0x00, 0x01, 0x00, 0xB0,
      0x00, 0x00, 0x00, 0xB0, 0x01, 0x00, 0x00, 0xB0, 0x07, 0x64, 0x00,
      0xB0, 0x0A, 0x40, 0x00, 0xB0, 0x5B, 0x28, 0x00, 0xB0, 0x5D, 0x00,
      0x00, 0xC0, 0x00, 0x00, 0xE0, 0x00, 0x40,
      0x00, 0x90,note, velocity, 0x87, duration, 0x80, note, 0x00,

      0xF0, 0x40, 0xFF, 0x59, 0x02, 0x00, 0x01, 0xBC, 0x00, 0xFF, 0x59,
      0x02, 0x00, 0x01, 0xBC, 0x00, 0xFF, 0x2F, 0x00 };
  return tr;
}

Je souhaite simplement pouvoir ensuite récupérer ma trame plus haut dans mon loop. Seulement j'ai cette erreur lors de la compilation : "initializer fails to determine size of 'trame'" :frowning:

J'ai cherché pendant 2 longues heures sans succès. >:(

Dans l'espoir de trouver quelqu'un pour m'aider :confused:
Bonne journée à tous !

Hello,

Pour moi ton code ne veut pas dire grand chose. Je sais pas ou tu en est dans l'apprentissage du language C, mais selon moi il faut revoir les bases

Notemment:

  • déclaration de variables et arrays
  • déclaration de fonction

J'ai essayé de faire quelque chose avec ton code mais sa me mène nulle part car je ne comprend pas le but.

Salutations.

Il est inutile de déclarer des tableaux de long entiers pour y coller des valeurs qui tiennent sur un seul octet. Utilise byte à la place de long.