Archiv verlassen und diese Seite im Standarddesign anzeigen : Was macht diese Programmzeile (Operator) ???
andirs18
23.09.2010, 11:00
Hi @ all,
ich sitze grad vor einem Programm und weiß nicht was diese 3 Zeilen machen:
P1 = (PID & 0b10000000) >> 7;
P1_temp = ~(ID1 ^ ID3 ^ ID4 ^ ID5);
P0_temp = ID0 ^ ID1 ^ ID2 ^ ID4;
Gruß Andreas
Hallo Andreas,
die Zeilen sind relativ harmlos, du solltest dir vielleicht Mal ein C-Tutorial durchlesen.
Zeile 1: PID wird bitweise mit 10000000 (Hex 80) und-verknüpft und dann um sieben Stellen nach rechts verschoben -> Es wird das MSB (most significant bit) von PID auf Bitposition 0 von P1 geschrieben.
Zeile 2: Die Konstanten/Makros ID1, 3, 4 und 5 werden xor-verknüpft und das Ergebnis invertiert in P1_temp gespeichert.
Zeile 3: ID0, 1, 2 und 4 werden xor-verknüpft und in P0_temp gespeichert.
mfG
Markus
andirs18
23.09.2010, 11:26
Haloo Markus,
nochmal zur Zeile 1.
Also das 8.Bit von PID wird an die Stelle des 1. Bit in P1 geschrieben ?
Thx Andreas
Hallo Andreas,
jepp, erst wird PID.7 ausmaskiert (durch das bitweise Und) und dann um sieben Stellen nach rechts geschoben, damit sind die ersten sieben Bits von P1 gleich 0, P1.0 = PID.7
Anmerkung: Var.n ist Bit n (7-0) von Variable Var - Die BASCOM-Schreibweise ist für Dokumentationszwecke ganz nett.
mfG
Markus
schau dir die Seite einmal komplett durch
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial
ist sehr hilfreich
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.