Anzeige:

Midi Bytes auf LCD

Hier finden sie die archivierten Beiträge des alten PHPBB Forums von www.loetstelle.net

Midi Bytes auf LCD

Von savag am 10.06.2009 21:36

Hi, ich schon wieder :)

Wollte mir einen kleinen Tester bauen für Midifußschalter oder andere Midi Geräte.
Leider scheitere ich gerade an einer vermutlich einfachen sache.

Folgendes:
Ich gehe mit meinem midi-signal auf einen Optokoppler der trennt das Signal von meinem Atmel und beim Atmel gehe Ich über PinB.0 rein.
Habe mit dem Oscar schon nachgemessen wenn ich den midi betätige änder sich an PortB.0 das Signal kurz von Hi auf Lo, also wird schonmal was übertragen, das nur am rande.

Ich möchte nun das die Bytes auf meinem LCD dargestellt werden sobald ich den Fußschalter drücke.
Hat da jemand eine Idee wie sowas machen kann?

So weit bin ich bis jetzt ( also ich bin noch anfänger was das alles betrift, also nicht lachen wenn das alles komisch aussieht!)

$regfile = "m8def.dat"
$crystal = 3686400
$baud = 31250
Config Pinb.0 = Input
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , _
Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
Config Lcd = 16 * 2
Cursor Off
Portb.0 = 1

Dim I As Byte

Do
Cls
Portb.0 = I
Locate 1 , 1
Lcd I
Loop
End

Von savag am 14.06.2009 17:17

jetzt kann ich zumindest das erste byte auf das display zaubern, aber die restlichen zwei bleiben noch verborgen. vlt hat ja jemand eine idde.

Wie kann ich unter bascom bytes in variable orden????
es kommen 3 bytes an aber es wird immer nur das erste ausgewertet
Muss ich da was mit einer Buffer machen oder was mach i falsch ?

hier mein code bis jetzt:

$regfile = "m8def.dat"
$crystal = 3686400
$baud = 13250
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , _
Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
Config Lcd = 16 * 2
Cursor Off

Open "comb.0:13250,8,n,1" For Input As #1
Dim A As byte , B As byte , C As byte

Do

Get #1 , A
Get #1 , B
Get #1 , C
Cls
Lcd A ; " " ; B ; " " ; C

Loop
End

Von savag am 15.06.2009 17:35

Fals es noch keinem aufgefallen ist, die baudangabe ganz oben ist falsch und sollte 31250 lauten aber wenn diese nicht da ist macht das auch nichts hab ich festgestellt.

Bin ich der einzige mit solchen Poblemen oder warum bin ich der einzigste der mir Antworten liefert Confused

Von pcprofi am 15.06.2009 17:45

Also zuallererst: Die Baudangabe MUSS drinstehen, sonst nimmt der µC den im Compiler eingestellten Standartwert!

Desweiteren muss die Crystal-Angabe exakt übereinstimmen mit der tatsächlichen Taktfrequenz.

Dass dir keiner Antwortet dürfte daran liegen, dass sich vermutlich noch keiner näher mit dem Protokoll beschäftigt hat.

Der Befehl GET ist in der lage, deine 3 Bytes direkt zu empfangen.

Schau dir mal die Referenz an hier:

http://avrhelp.mcselec.com/get.htm

Vielleicht hilft dir das schon weiter...

Natürlich müsstest du das ganze dann in eine 3-Byte lange Variable speichern...

Gruß Rainer

Von savag am 15.06.2009 20:25

Ich hatte die zusatz parameter auch in der hilfe gesehen doch leiter weiss ich nicht wie man die einsetzt.

Ich bräuchte ein kleines beispiel damit daraus schlau werde.

get #1, M, ???? was muss jetzt da stehen eine zahl oder index oder sonst was ?????

und dann ist das immer noch nicht in meiner Variable B

Anzeige: