Forum: Mikrocontroller und Digitale Elektronik Logische Veknüpfung in AVR-Assembler


von Roland F. (opale)


Lesenswert?

Ich bin noch ganz neu hier in dem Forum und arbeite mich gerade in den 
AVR-Assembler ein. Dabei komme mit den logischen Verknüpfunge noch nicht 
so ganz klar. Ich möchte gern ein Bit auf Null setzen, aber es nicht 
"hart verdrahten". Die beiden oberen auskommentierten Zeilen löschen mir 
das ganze Byte! Nur die dritte Zeile macht was ich will. Wo liegt da 
mein Denkfehler?
1
.equ  PIN_BSY    = 7
2
3
;
4
;  andi  temp1, !(1<<PIN_BSY)
5
;  andi  temp1, 0xFF & !(1<<PIN_BSY)
6
  andi  temp1, 0x7F

Kann mir jemand helfen?

von Sven P. (Gast)


Lesenswert?

Es besteht ein ganz erheblicher Unterschied zwischen '!' und '~' 
(Tilde), in deinem Fall wäre die Tilde bzw. ein '-' (Minus) angebrachter 
;-)

Ersteres ('!') ist ein logisches 'Nicht', als Ergebnis kann da nur 1 
oder 0 rauskommen, demnach ver-und-est du immer mit 0.
Die Tilde hingegen invertiert bitweise, und genau das willst du hier.

von Roland F. (opale)


Lesenswert?

Da bin ich nicht drauf gekommen. Ich hatte mir zwar im Handbuch die 
Operatoren angeschaut, hab aber übersehen, dass es gleich drei 
Negationsoperatoren gibt. Nur die Funktion des "Unary Minus" (-) ist mir 
noch nicht klar.

Vielen Dank aber schon mal!

von avr (Gast)


Lesenswert?

Hallo Roland,

in diesem Tutorial sind alle Befehle nochmal erklärt.

http://www.avr-asm-tutorial.net/avr_de/beginner/index.html

Es gibt auch verschiedene Sortierungen und Beispiele.

http://www.avr-asm-tutorial.net/avr_de/index.html

Wenn du in Assembler arbeiten willst recht hilfreich.

Gruß avr

von Roland F. (opale)


Lesenswert?

Hallo avr,

die Seite ist wirklich sehr hilfreich, die kannte ich noch nicht. Werde 
ich wohl sehr oft besuchen in nächster Zeit. Vielen Dank!

Gruß Roland

von avr (Gast)


Lesenswert?

Gute LINKS gebe ich gern weiter ;-)

avr

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
Noch kein Account? Hier anmelden.