Hallo, in C-Code steht folgende Zeile: asm ( bfclr #$0001,X:GPIOA_PEREN ); was kann "#$0001,X:GPIOA_PEREN" bedeuten? # steht für Bit und $ für Hex und dann ist noch ein ":" Was kann das alles bedeuten? Könnte ich nicht das ganze in C schreiben und aus dieser Zeile: GPIOA_PEREN=0x0001; machen? MFG Hakoo
bfclr könnte für Freescale DSP sein. X: gibt dann an, dassa die Asresse symbolische Adresse GPIOA_PEREN im X Memory gemeint ist. Was GPIOA_PEREN für eine reale Adresse ist, müsste in einem Includefile und/oder in einem Define definiert sein. Die asm-Zeile allein macht wenig Sinn. Bei der Umsetzung nach C ist der Kontext (das drumherum) zu beachten. Deine Idee mit GPIOA_PEREN=0x0001; ist IMHO nicht richtig; das testet ja nicht Bit0 (#$0001) und löscht es ja auch nicht.
@stefb Danke für die Antwort. #define GPIOA_BASE 0x00F150 #define GPIOA_PEREN (GPIOA_BASE + 0x3 ) //Peripheral Enable Register so sieht DEFINE aus Wofür steht IMHO? und was bedeutet #$? Danke
IMHO in Deutsch = meiner bescheidenen Meinung nach " In meinem Technik-Säkulum, da schwafelt man nicht lang herum. Ein Kürzel-Kauderwelsch ist Brauch, die Unart gab es früher auch. "
IMHO http://www.google.de/search?hl=de&q=imho&meta= # ist der Immediate addressing mode operator, d.h. der darauf folgende Wert wird als direkte Adresse oder Konstante verwendet. In obigem Fall ist der folgende Wert mit $ angegeben, d.h. es ist ein hexadezimaler Wert. # im Sinn einer Adresse bei BFCLR ist etwas missverständlich. Hier ist einfach nur ein absoluter Wert (Konstante) als Operand gemeint, nämlich der Wert $0001, d.h. es soll Bit0 geprüft und gelöscht werden. Der zweite Operand ist die Adresse, wo das passieren soll. Mit deinem Define ist die Adresse klar: 0x00F150+0x3 = 0x00F153 Die Erklärung müsstest su aber auch im Datenblatt von deinem µC finden. Die Dinger heissen "blablabla Reference Manual" oder "Assemlber Instruction Set" o.ä.. Auf lange Sicht unverzichtbar.
@ Stefan Vielen Danke für die gute Erklärung. Jetzt ist einiges klarer :-)
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.