www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Probleme mit Midisignal


Autor: Moritz Mop (hvgguser)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich bin gerade dabei mir einen MIDI-Controller selbst zu bauen, aber es
funktioniert garnichts. Der Code müsste eigentlich in Ordnung sein und
auch die Hardware funktioniert ohne Fehler. Wenn ich mir die Signale
mit MIDI-OX anschaue kommt nur Müll. Es wird alles angezeigt nur nicht
das, was ich sende. Ich habe keine Ahnung woran es liegt. Bitte helft
mir.
Ich habe leider nur recht wenig Erfahrung mit Mikrocontrollern.

Danke schon mal jetzt für eure Antworten

Autor: The Daz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Haeng mal den Schaltplan an aber bitte keine Eagle Dateien oder
sonstiges proprietaeres Zeugs.

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich kenne MIDI-OX nicht, aber vielleicht braucht das vollständige
MIDI-Messages. Das was du da sendest erfüllt das definitiv nicht, da
gar kein Status-Byte vorhanden ist.

Probier mal folende 3 Send-Bytes:
$90 (=0b10010000 =Status NoteOn Ch1)
$3C (=0b00111100 =mittleres C)
$7F (=0b01111111 =volle Dynamik)

Gruss Andi

Autor: Vex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo...

Das 1. Byte ist immer - MSB (127)Marker Statusbyte,3 Bits Befehl + 4
Bits Channel  also im Format 0bSBBBCCCC

Autor: Moritz Mop (hvgguser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die Antworten. Ich habe das mit dem Statusbyte falsch
gemacht. Jetzt funktioniert alles so wie es soll.

Mfg Moritz

Autor: Moritz Mop (hvgguser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, ich hab da nochmal eine Frage:
Ich möchte mit Hilfe des integrierten AD-Wandler eines ATMEGA-32 Potis
auswerten und als Midibefehl senden. Der AD-Wandler hat eine Auflösung
von 8-Bit, aber ich kann ja nur 7-Bit als Mididaten versenden. Wie kann
ich jetzt die ersten 7-Bit die nach der Wandlung in ADCH stehen in ein
anderes Register schieben mit einer Null davor als MSB, damit das Ganze
als Midi Datenbyte durchgeht?
ADCH = 10100110  -> verschieben -> r16 = 0 1010011
Ein Beispielcode wäre hilfreich, da ich mich nicht so sehr mit
Assembler auskenne.

Danke schon mal jetzt

Autor: inoffizieller WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"verschieben" nennt sich im englischen auch "shift".
Im AVR Instruction set wird es dafür 2-3 Befehle geben (und dann noch
ein paar, die rotieren).

"shift right" könnte helfen...

Autor: Moritz Mop (hvgguser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke ich habe den richtigen Befehl gefunden.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.