mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MIDI Merger mit AVR


Autor: Ingo Laabs (grobian)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen..
gibt es eigentlich einen MIDI-Merger mit einem AVR ?
Finde den auf ucapps.de zwar schon ganz interessant, nur fehlt mit der 
Progger für die PIC´s. Das Ding kostet ja soviel wie ein gebrauchter 
Merger !!
Kennt jemand einen Link für Merger mit AVR.

Gruß aus Berlin
Ingo

Autor: Phil J. (sunflower_seed)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
---

Autor: TheMason (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also mit den 4p-typen (mega164p oder kleiner) ist das kein thema, da 
diese über 2 uarts verfügen. auch andere typen mit 2 uarts sollten kein 
thema sein. eine sw uart dürfte schon deutlich schwieriger werden.

Autor: Ingo Laabs (grobian)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
TheMason schrieb:
> also mit den 4p-typen (mega164p oder kleiner) ist das kein thema,...

.....für mich schon, Komme mal gerade so mit einem UART klar.
Wie ist da die Vorgehensweise? Könnte jetzt natürlich die beiden UARTs 
ständig abfragen und sie auf die OUT Buchse leiten, aber ich darf ja die 
zusammengehörigen Datenpakete nicht zerstückeln wenn jetzt gleichzeitig 
Daten an den INs eintreffen.

Autor: TheMason (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
2 uarts für midi baudrate initalisieren, 2 rx-interrupts um beide 
datenströme zu empfangen (empfangsfifo), 1 tx interrupt um den 
auszugebenden datenstrom interruptgesteuert auszugeben und eine kleine 
logik die die einkommenden pakete (sortiert) in den ausgabepuffer 
schreibt. fertig :-)

Autor: Ingo Laabs (grobian)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
TheMason schrieb:
> eine kleine
> logik die die einkommenden pakete (sortiert) in den ausgabepuffer
> schreibt. fertig :-)

Da ist für mich das Problem..wie sortiere ich die Daten.
Angenommen auf Eingang 1 kommt ein $C0, 00 (Prg. Change )
und auf Eingang 2 kommt ein $90,55, 127 (Key on). Wie verhindere ich, 
dass dann z.B. ein $C0,90,00,55,127 ausgegeben wird, womit dann der 
Emfänger ja  nun gar nichts angfangen kann.

Autor: TheMason (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ganz einfach : du schreibst dir eine routine die in abhängigkeit von der 
länge des befehls die enstprechende anzahl an bytes in deinen 
ausgabebuffer kopiert. beispiel :

buffer 1 : 90 34 45 b0 12 34 c0 45 80 23 12
buffer 2 : b0 45 46 90 40 30 b0 45 34 c0 00

buffer 1 hat 90 -> 3 bytes

ausgabe buffer : 90 34 45

buffer 2 hat b0 -> 3 bytes

ausgabe buffer  : 90 34 45 b0 45 46

buffer 1 hat b0 -> 3 bytes

ausgabe buffer : 90 34 45 b0 45 46 b0 12 34

buffer 2 hat 90 -> 3 bytes

ausgabe buffer : 90 34 45 b0 45 46 b0 12 34 90 40 30

usw.

du müsstest dann nur noch vorm kopieren eines pakets prüfen ob das paket 
auch schon komplett da ist.
etwas komplizierter ist es mit dem running status (wenn das die korrekte 
bezeichnung ist), aber das sollte auch kein thema sein. schwieriger 
wirds erst wenn du sys-ex daten verwalten bzw umschalten mußt. da diese 
daten sehr groß sein können und du während auf einem port sys-ex daten 
laufen der andere puffer dann entsprechen überlaufen kann ist es sinnig 
bei sys-ex den jeweils anderen port auszuschalten (bzw eben keine daten 
mehr in den ausgabpuffer zu schreiben).

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.