Forum: Mikrocontroller und Digitale Elektronik pic PortB-Ausgang


von Tom (Gast)


Lesenswert?

Hallo, habe ein Programm für ein lcd-display geschrieben

Nach Ablauf des Programms sollte am PortB '01001111' anliegen, leider 
ist dies nicht der Fall!

Am Steckboard liegt '00000110'

Beim Debuggen in mplab kommt das richtige Ergebnis heraus

Woran kann das liegen?

grüsse Thomas

von Anja (Gast)


Lesenswert?

Tom schrieb:
> Woran kann das liegen?

Debugger an Port PB6 + PB7 aktiviert?

Gruß Anja

von Gahst (Gast)


Lesenswert?

Eindeutig ein Schaltungsfehler, sagt mir meine Glaskugel.

von Frank K. (fchk)


Lesenswert?

Analoge Eingänge per ADCON*-Register abgeschaltet?

Schau auf weitere Zweitfunktionen wie z.B. SOSC etc.

fchk

von Tom (Gast)


Lesenswert?

Hm, also das ADCON-Register wirkt sich ja nur auf PortA aus

übrigens, benutze den pic16f876

Auch glaube ich nicht dass die Pins des PORTB auf eine Zweitfunktion 
geschaltet sind, da das ganze PORTB auf Ausgang geschaltet ist

von hagi (Gast)


Lesenswert?

Du hast bestimmt LVP in den Configuration-Words eingestellt.

LVP_OFF sollte deine Wahl sein.

von Tom (Gast)


Lesenswert?

LVP hab ich auf off

Anja schrieb:
> Debugger an Port PB6 + PB7 aktiviert?

Debugger läuft unter mplab softwaremäßig also nicht in-circuit-debugger

von chick (Gast)


Lesenswert?

Und welche Port-Pins verwendet der MP-Lap-Software-Debugger?
Oder ist der gar nicht mit der Hardware verbunden?

von Tom (Gast)


Lesenswert?

gar nicht mit der hardware verbunden!

von Bernd R. (Firma: Promaxx.net) (bigwumpus)


Lesenswert?

Evtl. auch ein Read-Modify-Write-Fehler, aber mit den dürftigen Angaben 
hier ist es schwer zu sagen.

von Tom (Gast)


Angehängte Dateien:

Lesenswert?

read-modify fehler?

Hier ein Auszug meines Programmes! PortB natürlich auf output 
geschaltet!

von hagi (Gast)


Lesenswert?

Ist auch Bank0 aktiv?
Das geht aus dem Code nicht hervor.

von Anja (Gast)


Lesenswert?

Tom schrieb:
> gar nicht mit der hardware verbunden!

Tom schrieb:
> übrigens, benutze den pic16f876
> Auch glaube ich nicht dass die Pins des PORTB auf eine Zweitfunktion
> geschaltet sind, da das ganze PORTB auf Ausgang geschaltet ist

Gut daß wir das auch erfahren:
aber vielleicht die Fuses (_DEBUG_ON)
falsch gesetzt (PortB.6,7 hat nix mit LVP zu tun LVP ist auf PortB.3)
_DEBUG_ON schaltet B6 + B7 auf die Debugging Funktion.

Gruß Anja

von Ottmar K. (wil1)


Lesenswert?

Hallo Tom,
wäre vielleicht nicht ungeschickt den Quellcode zu posten!

von Anja (Gast)


Lesenswert?

Ottmar K. schrieb:
> wäre vielleicht nicht ungeschickt den Quellcode zu posten!

Und die Fuses (aber so wie sie im PIC programmiert sind).
Möglicherweise macht sein Programmer irgendwas dummes.

Gruß Anja

von Tom (Gast)


Angehängte Dateien:

Lesenswert?

Also, hier das Programm, em, kurze Erklärung__>

Das Programm sollte ein LCD-Modul steuern

Wait, wait_2ms sind Warteschleifen
lcddata enthält die Daten die an das PortB ausgegeben werden sollen

wrdata=schreiben von Daten über das PORTB, dabei ist das PORTA,2 gesetzt
wrinstr=schreiben von Befehlen über das PORTB, das PORTA,2 ist null

+kommt auf einmal die Meldung codeprotected wenn ich das hex in den uC 
schreiben will, benutze den Brenner 8 von sprut, mit remove cp und erase 
pic lässt sich das problem nicht lösen. ?

von Chris (Gast)


Lesenswert?

mach nach dem main: ein " clrwdt" rein und vor dem End ein:

 clrwdt
 goto $-1

Daß der WDT eingeschaltet ist, und kein einziges clrdwt da ist, würde 
ich
als Fehler ansehen. Ansonsten sollte es funktionieren.

von M. J. (manfred-64)


Lesenswert?

Tom schrieb:
> Auch glaube ich nicht dass die Pins des PORTB auf eine Zweitfunktion
> geschaltet sind, da das ganze PORTB auf Ausgang geschaltet ist

Falsch!
Siehe "Analog Falle"
(kA ob Deinen Pic ein HWM besitzt das Pins vom PortB benutzt)

von Michael S. (rbs_phoenix)


Lesenswert?

Für die Nutzung eines ADC-Channels muss der Pin als Eingang geschaltet 
sein. Als Ausgang ist das egal. Doch evtl gibts noch vom 
Comperator-Modul ein Ausgang. Bisher hab ich bei PICs nur gesehen, dass 
eben Comperator- & ADC Verbindungen vor dem Digital IO kommen. Alles 
andere musste ich bisher extra dazu schalten, z.b. I2C.

von Tom (Gast)


Lesenswert?

So, muss mal das Basteln einstellen, neuer uC muss her, meiner ist 
*abgekr...* hihi

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
Noch kein Account? Hier anmelden.