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
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
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
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
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