andi.studi
19.10.2008, 22:33
HALLO Mikrocontroller - Freunde,
entschuldigt den komischen Titel ich weiß selber nicht wie ich das betiteln soll.
hoffe aber ihr könnt mir etwas behilflich sein.
es geht um das verhalten von PORTB (oder den PORT'S allgemein?) beim PIC18f4550
INTCON2bits.RBPU=0; // pull-up's an
TRISB = 0b11110000; // Hälfte Eingang - Hälfte Ausgang
PORTB = 0b11111100;
RB0 -> output -> 0
RB1 -> output -> 0
RB2 -> output -> 1
RB3 -> output -> 1
RB4 <- intput <-
RB5 <- intput <-
RB6 <- intput <-
RB7 <- intput <-
wenn ich jetzt RB1 (Ausgang low) mit RB4(Eingang) verbinde
ist PORTB = 0x11101100
ich ziehe RB4 auf low, das sehe ich ein, ist auch gewolt.
doch wenn ich noch eine weitere Verbindung lege und
RB1 (Ausgang low) mit RB5(Eingang) verbinde
ist PORTB = 0x11111100
und das verstehe ich nicht, wieso sind RB4 und RB5 beide wieder high, nach meinem Verständnis sollte 0x11001100 rauskommen also beide low.
und jetzt wird es noch verrückter (für mich jedenfalls)
ich schalte die pull up's aus (alle Eingänge hängen in der Luft) und es funktioniert so wie ich es mit eingeschalteten pullups erwartet hätte.
und wenn die Betriebsspannung von 5 auf 4,5 Volt abfällt funktioniert es auch (egal ob mit oder ohne pull up).
wodran liegt das, kennt jemand diese Erscheinung oder hat eine Idee???
ich bin um jede Hilfe dankbar.
mfg andi
entschuldigt den komischen Titel ich weiß selber nicht wie ich das betiteln soll.
hoffe aber ihr könnt mir etwas behilflich sein.
es geht um das verhalten von PORTB (oder den PORT'S allgemein?) beim PIC18f4550
INTCON2bits.RBPU=0; // pull-up's an
TRISB = 0b11110000; // Hälfte Eingang - Hälfte Ausgang
PORTB = 0b11111100;
RB0 -> output -> 0
RB1 -> output -> 0
RB2 -> output -> 1
RB3 -> output -> 1
RB4 <- intput <-
RB5 <- intput <-
RB6 <- intput <-
RB7 <- intput <-
wenn ich jetzt RB1 (Ausgang low) mit RB4(Eingang) verbinde
ist PORTB = 0x11101100
ich ziehe RB4 auf low, das sehe ich ein, ist auch gewolt.
doch wenn ich noch eine weitere Verbindung lege und
RB1 (Ausgang low) mit RB5(Eingang) verbinde
ist PORTB = 0x11111100
und das verstehe ich nicht, wieso sind RB4 und RB5 beide wieder high, nach meinem Verständnis sollte 0x11001100 rauskommen also beide low.
und jetzt wird es noch verrückter (für mich jedenfalls)
ich schalte die pull up's aus (alle Eingänge hängen in der Luft) und es funktioniert so wie ich es mit eingeschalteten pullups erwartet hätte.
und wenn die Betriebsspannung von 5 auf 4,5 Volt abfällt funktioniert es auch (egal ob mit oder ohne pull up).
wodran liegt das, kennt jemand diese Erscheinung oder hat eine Idee???
ich bin um jede Hilfe dankbar.
mfg andi