Forum: Mikrocontroller und Digitale Elektronik Programm funktioniert im Simulator, aber nicht auf Controlle


von Ampfing (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich habe das im Anhang befindliche Controllerprogramm geschrieben. Im 
Simulator (Keil µVision 3) funktioniert das Programm genau so, wie ich 
es mir vorstelle. Es soll eigentlich 'nur' über die RS232-Schnittstelle 
mit einem Rechner kommunizieren und abhängig von den empfangenen Daten 
bestimmte Ausgänge setzen bzw. rücksetzen oder Daten an den Rechner 
schicken.
Jetzt habe ich das Programm auf meinen Controller (AT89C51ID2) geflasht 
und es funktioniert leider gar nicht...
Wenn ich einen Reset mache bekomme ich - laut Terminalprogramm - erstmal 
eine 0x00 geschickt. Dann schicke ich - auch per Terminalprogramm - eine 
0x00FF rüber. Daraufhin sollte der Controller eigentlich mit einer 
0x000EFF antworten. Das tut er leider nicht, sondern er sendet einfach 
gar nichts.
Da das Programm im Simulator funktioniert nehme ich mal an, dass ich 
etwas in der ProjectInit() falsch mache. Sprich irgendwelche 
Hardwareeinstellungen nicht vornehme, die der Simulator nicht benötigt, 
die reale Hardware aber eben schon.
Zur Sicherheit habe ich mal den gesammten Code eingefügt.

Wäre klasse, wenn sich jemand meinem Problem annehmen würde.

Vielen Dank schonmal im voraus und viele Grüße

von Ampfing (Gast)


Lesenswert?

Hm, 21 Downloads und keine Antwort.
Das kann jetzt heißen, dass das Programm an und für sich funktionieren 
sollte - dann bitte auch das Antworten - oder dass das Programm so lang 
ist und niemand alles gelesen hat.

Bitte schreibt mir wenigstens, ob ihr denkt, dass es grundsätzlich 
richtig ist, oder ob irgendwo ein ziemlicher Denkfehler drin ist - auch 
wenn es dann ja eigentlich auch im Simulator nicht funktionieren sollte, 
oder?

Danke und viele Grüße

von Ale (Gast)


Lesenswert?

Habst du ein einfachste programm getestet (LED Blinken) und geht, mit 
dieses Kontroller/Brenner/Compiler/Fuses ?

Mit ein Paar LED im Port0 oder Port1 du kannst einfach debuggen...

von Ampfing (Gast)


Lesenswert?

Hi,

noch bin ich dazu leider nicht gekommen, werd ich aber auf jeden Fall 
nachher versuchen.

Viele Grüße

von Ampfing (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

nochmal ich.
Auch ein ganz einfaches Programm, wo ich nur den Port 0 auf high schalte 
(nach dem Aufruf der ProjectInit()) läuft auf der Hardware leider nicht.
Das heißt doch für mich, dass dort irgendwo der Fehler liegen muss, 
oder?
Der Sicherheit halber ist mal mein Stromlaufplan angehängt. Die am 
Controller offen gezeichneten Pins sind auf der Platine mit 
Steckerleisten verbunden, die der Übersichtlichkeit halber aber auf dem 
Plan weggelassen sind.

Hat jemand noch eine Idee, woran es in der ProjectInit() liegen könnte?

Viele Grüße

von Ale (Gast)


Lesenswert?

Reset braucht eine Widerstand nach VCC und die Sclater muss nach GND 
gehen,  oder ?

von Ampfing (Gast)


Lesenswert?

Hi,

hm, im Datenblatt steht eigentlich, dass der Reset einen internen 
Pulldown hat. Für den Power-on Reset braucht man nen Kondensator nach 
VCC (den hab ich jetzt mal provisorisch reingelötet, aber hat auch 
keinen Effekt).
Was ist die Sclater? Damit kann ich leider gar nix anfangen.

Viele Grüße

von Jörn P. (jonnyp)


Lesenswert?

Dein Reset hängt in der Luft. Diese Leitung sollte mit ca. 5kOhm an V+ 
hängen. Taster S1 muss diese Leitung nach GND schalten. Mit einem 
Kondensator zwischen RESET und GND erhältst du dann eine Auto-Reset 
Funktion beim Einschalten.

von Ale (Gast)


Lesenswert?

Sclater == Schalter

entshuldigung

Mach es so wie Jörn gesagt hat.

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.