RB0 am PIC16F884

OP #7590397
Lesenswert?

Hallo, Forum, bei folgender Einstellung: TRISB = 0: PORTB = Ausgang ANSELH = 0: PORTB = digital I/O PORTB = b'11111111' werden an RB1 bis RB7 angeschlossene LEDs wie gewünscht, eingeschaltet, die an RB0 gleichartig angeschlossene LED erhält keinen Strom. Am freien Pin RB0 liegt die volle Versorgungsspannung an; wenn die LED angeschlossen wird, geht die Spannung auf 1,9 V runter, ohne dass die LED leuchtet. (LED-Typen 2mA, Rv = 1 k). Wo steckt der Wurm? Dieter

#7590436
Lesenswert?

Der Code an sich ist korrekt, der Wert in ANSELH ist bei Output unerheblich, stört hier aber nicht.

Mögliche Fehler:

  • Feinschluss in der Verdrahtung/auf dem PCB?
  • kalte (hochohmige) Lötstelle, die 1,9V sind die Flußspannung der LED, beim hochohmigen Messen ohne LED gibt es kaum Spannungsabfall
  • PIC defekt?

Kannst Du den PIC entfernen und den PORTB.0 - Anschluss direkt an VDD klemmen und leuchtet die LED dann?

Gruß JRo

Edit: @hhinz: >Im Pinout falsch gezählt. Ist möglich, aber unwahrscheinlich, da RB0 zwischen RB1 und VDD liegt, also würde der Anschluss von RB1 oder von VDD versorgt.

OP #7590474
Lesenswert?

Johannes R. schrieb:

Mögliche Fehler:

  • Feinschluss in der Verdrahtung/auf dem PCB?
  • kalte (hochohmige) Lötstelle, die 1,9V sind die Flußspannung der LED, beim hochohmigen Messen ohne LED gibt es kaum Spannungsabfall
  • PIC defekt?

Kannst Du den PIC entfernen und den PORTB.0 - Anschluss direkt an VDD klemmen und leuchtet die LED dann?

Alles das habe ich ausprobiert, bevor ich den thread geschrieben habe. Ich habe auch einen zweiten PIC erfolglos eingesetzt. Dieter

OP #7590504
Lesenswert?

Rahul D. schrieb:

Zumindest irgendwo im unsichtbaren Quellcode.

Das stimmt sehr wahrscheinlich, denn ich habe mal zum Testen praktisch den gesamten Code gelöscht s. Anhang, und so funktioniert es. Was mich so verunsichert, ist, dass im dem gesamten (gelöschten) Code der PORTB nicht vorkommt, weshalb ich keinen Anhalt für eine Fehlersuche im Code erkennen kann. Dieter

Angehängte Dateien:
OP #7590518
Lesenswert?

Teo D. schrieb:

Im Code... Zeile 42?!

Tatsächlich, allerdings in Zeile 196 stand ein auf RB0 bezogener Befehl, den ich aus einem anderen Programm übernommen hatte, der aber in diesem Programm überflüssig war. Warum aber dieser Befehl in einem nicht aufgerufenen Unterprogramm die beschriebene Auswirkung hatte, bleibt mir schleierhaft. Besten Dank für Eure Hinweise! Dieter

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