Real men never read a manual!!

Das Beispiel ist nicht durchgetestet und kann Fehler enthalten!!

Grundstzlich funktioniert es mit interner Taktfrequenz von 1MHz und 31250 Baud.Hhere Frequenzen sind jedoch auch mglich Baudrate beachten!

Die Sourcen sind aus microcontroller.net und diversen Quellen im Netz zusammenkopiert.

midi.c und midi.h sind die uart Quellen, fr atmega8 und 16, interrupt gesteuert

if (bytesAvailable()) .... Abfrage, ob Daten angekommen sind...
readByte(); liest das nchste byte und entfernt es aus dem Puffer. 
Daher muss immer readByte() aufgerufen werden, wenn Daten anliegen, sonst luft der Puffer irgendwann ber

switch ist eine kleine Hilfsbibliothek fr meine Schalterbesonderheiten an Gitarrenverstrkern. Sxchalter knnen damit wie Taster eingesetzt werden. 
Sowie toggleSwitches, die sich den Zustand merken....wer sowas braucht :-)

Das Program startet und ldt Midi Programm 0.

Kommt nun ein Program_Change z.b. 11, Wird das entsprechende Programm geladen. Alle Programmspeicherpltze sind mit 0x02(Clean on) initialisiert.

Nimmt man nun nderungen der Schalter vor und erhlt erneut Program_Change, mit der Nummer 11, dann wird die Einstellung gespeichert. Clean blinkt dann 5 mal

Speicher:
<Programmnummer=Adresse><programmData=1 byte> (Programmnummer 0-127)
Adresse 128 wird ein globales byte gespeichert.
Adresse 129 wird ein dummy gespeichert 0x33, als Erkennung ob der eeprom initialisiert wurde.


