Forum: Mikrocontroller und Digitale Elektronik Atmel AT89C51ED2 Port 1.4 kann nicht auf 0 gesetzt werden


von Marko (Gast)


Lesenswert?

Hallo Leute,

ich kann mir nicht erklären, warum ich den Pin 1.4 von Port 1 nicht auf 
Null setzen kann. Extern ist nichts angeschlossen und im Quellcode 
ledigglich P1_4=0. Ich programmiere mit Keil µVision3 und Flashe mit 
Flip 2.4.4.
Das PCA benutze ich nicht, ist also im Default-Zustand.
Alle anderen Pins des Ports kann ich setzen.
Habe es bei zwei Controllern ausprobiert und erhalte dasselbe Ergebnis.

Kennt sich jemand aus?

MfG
Marko

von Stephan (Gast)


Lesenswert?

habe gerade kein Datenblatt zur Verrfügung.
Ist das nicht der Port der den Pull UP braucht.
Evtl ist ein Widerstand defekt ???
Welchen Pegel hat das Pin ??

von Marko (Gast)


Lesenswert?

Hi Stephan,

Der besitzt interne Pullups. Ist aber wie gesagt eh nicht beschaltet. 
Ich geh einfach mit einem Oszi drauf. Das Datenblatt findest Du unter:

http://www.atmel.com/dyn/resources/prod_documents/doc4235.pdf

Vielen Dank für Deine Unterstützung.

von Stephan (Gast)


Lesenswert?

tja, dann isr da nen Kurzschluß drin oder Portpin defekt. Was anderes 
bleibt ja kaum außer der Software. Wenn nicht schibe doch mal ein Bit 
immer im Kreis rum. Das sollte man sehen. Notfalls das Pin aus der 
Fassung nehmen falls es DIL ist.

von dernixwois (Gast)


Lesenswert?

häng doch mal ne LED ran dann siehste gleich was sache ist.

von Marko (Gast)


Lesenswert?

Der Pin ist in Ordnung.
Ich hab dasselbe Problem auch mit einen anderen AT89C51ED2.
Die Pins P1.0 oder P1.2 etc. funktionieren so wie ich es möchte. Es muss 
also irgendwas im SFR sein.

Dann hab ich probiert, statt dessen den SS-Pin (also P1.1) zu benutzen. 
Funktioniert leider auch nicht.

Ich habe probiert den ganzen Port zu beschreiben (P1=0x00), dann lassen 
sich alle Pins auf Null setzen, die Pins P1.1 und P1.4 jedoch nicht.

Sehr merkwürdig...

von Stephan H. (stephan-)


Lesenswert?

Messe doch mal mit dem Ohmmeter an den Pins gegen Vcc oder angrenzende 
Lötpunkte. Da muß was sein. Mit SFR hat das nichts zu tun solange sie 
nicht initialisiert sind.

von dernixwois (Gast)


Lesenswert?

Also ich hab mal bei meinem nachgemessen ohne last dran und P1 = 0x00.

Bei mir lässt sich der Port zurück setzen.
Ich Tippe du hast auf deiner Platine, wie auch immer sie aussieht, 
irgendwo ein lötbatzen oder feine lötbrücken.

Prüf mal deine Platine ganz genau mit nem Ohmmeter durch.


von Marko (Gast)


Lesenswert?

Werd ich nochmmal machen. Da der sich der Controller im Sockel befindet 
(PLCC44), kann es sein, dass vielleicht etwas Lötzinn unter die Kontakte 
gekommen ist.

Danke für die Antworten.

von Marko (Gast)


Lesenswert?

Hat jemand Ahnung von Speicherverwaltung mit µVision. Unter 
Targetotpionen kann man mehrere Modelle benutzen. Was macht da Sinn 
einzustellen?

von Peter D. (peda)


Lesenswert?

Marko wrote:
> Hat jemand Ahnung von Speicherverwaltung mit µVision. Unter
> Targetotpionen kann man mehrere Modelle benutzen. Was macht da Sinn
> einzustellen?

In der Regel ist nur das Small-Modell sinnvoll.

Es sei denn, Du willst schlechten Programmierstil an den Tag legen und 
haufenweise globale Variablen anlegen.

Große Datenfelder oder selten benutzte Variablen werden als xdata 
deklariert.


Peter

von Marko Wagner (Gast)


Lesenswert?

Ich danke Dir Peter.

Auf Dich ist verlass....

Gruß Marko

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.