Bits setzen PICC (nur das letzte bleibt "high")

OP Persönliche Seite #1000995
Lesenswert?

Hallo zusammen,
ich möchte einzelne Bits eines Ports setzen. Dafür ich folgendes Makro 
definiert:
1
#define BITNUM(adr, bit) ((unsigned)(&adr)*8+(bit))

Die Bits habe ich wie folgt definiert
1
static bit MODE    @ BITNUM(PORTA,1);
2
static bit T_MODE  @ BITNUM(TRISA,1);
3
static bit RTB    @ BITNUM(PORTA,2);
4
static bit T_RTB  @ BITNUM(TRISA,2);
5
static bit CK    @ BITNUM(PORTA,3);
6
static bit T_CK    @ BITNUM(TRISA,3);

dann setze ich die entsprechenden TRIS-Register für den Pic
1
T_MODE = 0;
2
T_RTB = 0;
3
T_CK = 0;

und dann setze ich die Bits des Ports wie folgt:
1
RTB = 1;
2
MODE = 1;
3
CK = 1;

Das Problem dabei ist, dass nur CK aktiv (High) ist. Wenn ich Mode und 
Ck tausche ist "mode" high, und wenn ich RTB zu letzt setze, dann ist 
RTB High.
Also immer das Bit ist high, was ich zuletzt auf "1" gesetzt habe...
warum?
Ich habe schon soooo viel versucht, und nichts hilft.

Gruß,
 Tobias

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