PIC cc5x for-Schleifen Syntax Frage

Gast #501523
Lesenswert?
• ▲
▼
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
Gast #501542
Lesenswert?
• ▲
▼
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...
Gast #501609
Lesenswert?
• ▲
▼
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren