Hallo Ich arbeite hier gerade mit dem SiLabs F500 und möchte die Pins von Port 4 gerne als Ein/Ausgänge benutzen. Leider kann ich diese nicht ansprechen. Habe versucht die Ausgänge gleich wie bei den anderen Ports zu definieren: SBIT (RUN_3V3, SFR_P4, 0); SBIT (RUN_1V2, SFR_P4, 1); Bei Port 1 und 3 funktioniert das wunderbar. Nur wenn ich den Port 4 benutzen will bekomme ich folgende Compilermeldung: "*** ERROR C142 IN LINE 25 OF MAIN.C: 'SFR': invalid base address" "*** ERROR C142 IN LINE 26 OF MAIN.C: 'SFR': invalid base address" Ich habe schon versucht die Datei C8051F500_defs.h anzupassen. Leider ohne Erfolg. Die Adresse des P4 Latch registers ist 0xB5. Es scheint aber so dass dieses Register nicht Bitaddresierbar ist. Das sollte es doch aber, damit ich jeden Pin einzeln ansprechen kann!? Hat von euch schon jemand mit diesem Controller gearbeite und kann mir sagen was ich bei Port 4 beachten muss? Scheint schon ein etwas besonderer Port zu sein, ist ja auch nur bei der großen Package Variante verfügbar. Vielen Dank schonmal im Voraus! Grüße Bean
Mr Bean schrieb: > Die Adresse des P4 Latch registers ist 0xB5. Es scheint aber so dass > dieses Register nicht Bitaddresierbar ist. Stimmt. Bits ändern, lesen geht nur über &,|,^. Peter
#define TestPin P4_1 TestPin = 1; TestPin = 0; So sollte sich ein PIN von P4 ansprechen lassen. Verwendest du den SDCC oder den Keil Compiler ?
Hallo Hm, also ich verwende den Keil compiler. Werde aber später auf den Tasking compiler umsteigen. Wie spreche ich den Port dann an, wenn dieser nicht Bitaddressierbar ist? Grüße Bean
Ok, habs mit Makros hin bekommen: #define SETBIT(x,n) ((x)|=1<<(n)) #define CLEARBIT(x,n) ((x)&=~(1<<(n))) #define GETBIT(x,n) ((x)&1<<(n)) Danke! Bean
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.