Absoluter Newbie-Frage: Ich bin gerade dabei mich in die Programmierung (in C) der µC einzuarbeiten. Das Ganze nur, damit ich sicher bin, dass ich das Prinzip verstanden habe. Korrigiert mich, wenn ich daneben liege: (ich beschreibe jetzt mal ganz allgemein, da ich denke, dass diese Verständnis unabhängig von der Controllerwahl ist) Im Prinzip programmiere ich doch einen µC durch das Setzen von Flags in gewissen Bytes. Bspw. ist auf Adresse $003A das Byte mit dem Synonym PLLCTL zu finden. In diesem Byte steht halt jedes Bit für eine gewisse Funktion. Z.B. Bit 6 aktiviert die PLL (Synonym "PLLON") und Bit 5 aktiviert den Automodus (Synonym "Auto"). Damit ich nun die Flags auf dem Byte setzen kann, muss ich 0x3A = 0x60 (oder PLLCTL = 0x60). Liege ich soweit richtig? Gruß sleit
besser, weil ungefährlicher: PLLCTL=PLLCTL|0x60; vermeidet unbeabsichtigtes Überschreiben anderer Flags, die auf derselben Byteadresse stehen. In deinem Beispiel werden Bit5 und 6 gesetzt, alle anderen zurückgesetzt. In meinem Beispiel werden nur 5 und 6 gesetzt, die anderen bleiben unbehelligt. Geht aber noch weiter. Mit 0x60 kann keiner was anfangen, ohne im Datenblatt des Controllers nachzuschauen, was der Befehl denn nun wirklich macht. Dafür benutzt man symbolische Bitadressen (i.a. sind die schon in der .h-Datei des Prozessors deklariert. nehmen wir einfach mal die Namen Flag1 (=Bit5) und Flag2 (=Bit6). und nun sieht das Ganze so aus: PLLCTL=PLLCTL|(1<<Flag1)|(1<<Flag2); sieht erstmal wüst aus, ist es aber gar. Hat 2 Vorteile: man sieht, welche Flags gesetzt werden, und falls beim nächsten Prozessor die Flags auf eine andere Bitstelle gewandert sind, funktioniert das ganze trotzdem. (Flag1=7, Flag2=1)
"sieht erstmal wüst aus, ist es aber gar nicht." muss das natürlich heissen - wann kann man endlich seine Beiträge editieren?
@crazy horse "wann kann man endlich seine Beiträge editieren?" Jederzeit (vor Anklicken des Submit-Buttons ;-)
Moin zusammen *gähn Besten Dank! Jetzt bin ich schon einmal einen Schritt weiter Gruß sleit
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.