bitwait funktioniert nicht

Gast #210942
Lesenswert?

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
Gast #210944
Lesenswert?

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
Gast #210946
Lesenswert?

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
Gast #210948
Lesenswert?

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
Gast #210950
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren