Hallo, wenn ich das Prog auf meinem µC austesten will funktioniert es nicht, sprich wenn ein LOW an Pind0 anliegt ( Zeile Bitwait ) werden die Leds nicht eingeschaltet, klammer ich Zeile Bitwait aus, funktioniert alles, Hardware i.O.. Auch im Simulator wird nach einem Low an Pind0 die letzten Bits von portd low. Wo liegt das Prob ? $regfile = "4433def.dat" $crystal = 8000000 Ddrd = &B11110000 Portd = &B11111111 Anfang: Bitwait Portd.0 , Reset Portd = &B00001111 Wait 1 Portd = &B11111111 Wait 1 Goto Anfang End
Hallo Reinhard, beim AVR gibt es ein PORT- und ein PIN-Register. Zum Abfragen eines Eingangs mußt Du das PIN-Register nutzen: Bitwait Pind.0 , Reset. Gruß Gerd
hallo gerd, in der bascom-avr help datei wird das ganze so beschrieben Bitwait Portb.7 , Reset 'wait until bit 7 of Port B is 0. ich habe es mit pind.0 im avr studio simuliert, bitwait wird nun völlig ignoriert, das Programm läuft ohne pind.0 auf low gesetzt zu haben bis goto. gruß r
Hallo Reinhard Versuch mal "Pinb.7" sollte gehen Portpin muss auf -Eingang- gesetzt sein Kurt
Hallo Reinhard, ja, das steht in der Hilfe. Aber es ist falsch, besser gesagt, es funktioniert nicht. Klar wartet "Bitwait Portb.7 , Reset" darauf, daß das Bit Nr. 7 im Register Portb auf 0 geht, aber das fragt nicht den Ausgang ab. Daß Bitwait "Pind.0, Reset" im avr studio ignoriert wird, liegt vermutlich daran, daß pind.0 = 0 ist. Gruß Gerd
so ghehts bei mir ------------------------ Config Pinc.2 = Input Eing Alias Pinc.2 --------------------- Bitwait Eing , Set Kurt
es geht nicht, weder im avr-studio noch mit µc das prog wartet nicht auf ein low an pind.0 , sondern läuft bis goto Anfang usw... . $regfile = "4433def.dat" $crystal = 8000000 Ddrd = &B11110000 'Datenrichtung bit0-3 Eingang, rest Ausgang Portd = &B11111111'Bit0-3 pullup Anfang: Bitwait Pind.0 , Reset 'warte bis low an pind.o Portd = &B00001111 Wait 2 Portd = &B11111111 Goto Anfang End
schreib doch mal Config Pind.0 = Input dazu. Ddrd = &B11110000 'Datenrichtung bit0-3 Eingang, rest Ausgang Portd = &B11111111'Bit0-3 pullup Da fehlt doch die "Config" Sache ?? Kurt
Oder probiers einfach mal ungefähr so, wie es in der BASCOM-Hilfe steht. Also statt "Bitwait" die "echten" Maschinenbefehle: label1: Sbic PINB,0 'Überspringe nächsten Befehl, wenn PinB.0 = 0 (clear). Rjmp label1 'Ansonsten erneut testen. Es ist kein Problem in BASCOM ASM-Befehle zwischen rein zu schreiben. Vielleicht hast Du ja irgend wann sämtliche Routinen in ASM unter BASCOM was auch zur Optimierung beitragen würde ;-) MfG Andi
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.