Hallo, nachdem mir bei meinem ersten Beitrag heute Morgen so schnell, und erfolgreich, geholfen wurde möchte ich euch noch etwas fragen: uns16 i,j; i=1; for(j=0;j<i;j++) PORTB.j = 1; liefert mir beim Kompilieren einen Fehler, anscheinend kann er das .j hinter dem PORTB nicht verarbeiten. PORTB.0 z.B. ist aber möglich... Weiß jemand den Grund dafür? Schöne Grüße, Alex
Hallo Alex ! Was genau gibt der Compiler für einen Fehler aus ? Es kann sein, dass CC5x an der Stelle keine Variablen duldet, es kann aber auch sein, dass die Definition als uns16 falsch ist ... aber dafrü brauche ich mehr "Input" :-) Gruß, Andreas
Hallo Andreas! Das hier ist das compile-log: main.c: } PORTB.i = 1; ^------ Error[1] D:\Counter\main.c 27 : Syntax error (The expression must be corrected. The marker ^------ shows the approximate position where CC5X gives up. The documentation should be checked if the cause is not obvious) uns16 habe ich als Variablentyp auch schon an anderen Stellen verwendet. Es scheint, als ob cc5x an dieser Stelle entweder keine Variablen duldet, oder wenn, dann stimmt mit dem Typ oder der Syntx wohl etwas nicht...
Ja, der duldet keine Variablen. Du musst den ganzen PORTB in eine 8 bit Variable laden, dann manipulieren, und dann wegschreiben. Da es mit Read-modify-write Befehlen Schwierigkeiten geben kann, schreibe ich parallel zu den Prots immer in eine Spiegelvariable, also: port_b = 0xff; s_port_b = 0xff; Dann musst du einfach nur s_port_b verändern, und in das Port-Register schreiben.
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.