Hallo, ich bin gerad dabei, das AVR-Tutorial zu durchlaufen. Jetzt habe ich eine wahrscheinlich kurz zu beantwortende Verständnisfrage. Ich bin im Kapitel "LCD" -- Ausgabe eines 16Bit Zahlenwerts. Ich habe mit folgender Programmzeile ein Problem: ; lcd_number16: push temp1 push temp2 push temp3 ; ** Zehntausender ** ldi temp1, '0'-1 lcd_number1: inc temp1 subi temp2, low(10000) sbci temp3, high(10000) <--- was macht dieses high(10000)??????????????? sbci --> substract with Carry Constant from Register brcc lcd_number1 subi temp2, low(-10000) sbci temp3, high(-10000) rcall lcd_data ; ** Tausender ** Viele Grüße Olli
@ Olli R. (downunderthunder42) > sbci temp3, high(10000) <--- was macht dieses >high(10000)??????????????? high() ist ein Macro vom Assembler, es liefert als Ergebnis das High Byte einer Konstanten. Sprich, wenn man die Dezimalzahl 10000 als Hexadezimal schreibt ergibt das 0x2710, die Funktion high liefert dann 0x27. 0x ist die Kennzeichnung für hexadezimale Zahlen, im AVR-Assembler kann man auch $ schreiben. 10000 dezimal 0x2710 hexadezimal $2710 hexadezimal MFG Falk
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.