Forum: Mikrocontroller und Digitale Elektronik 8051 MC geht irgendwie nicht


von Matthias (Gast)


Lesenswert?

Hallo,
ich versuche gerade einen MSC1210 Mikrocontroller (8051 CPU) mit C51 zu 
programmieren. Ich möchte erstmal nur testen ob er überhaupt 
funkioniert.
Ich verwende dazu folgende Befehle:
sfr P1 = 0x90;
void main(void)
{
unsigned int i;
while(1)
{
i=1;
P1=~P1;
for (i=1;i<10000;i++);
}
}
Das Ergebniss ist das nach dem download der compilerierten hex-Datei in 
den Controller der Port1 immer noch ständig auf high-Pegel ist. (genauso 
wie im unprogrammierten Zustand)
Nach dem auslesen des Speichers merkt man aber das er beschrieben ist, 
also muss das laden der hex-Datei geklappt haben.
Wo könnte der Fehler liegen?
Wie kann ich am sichersten/einfachsten testen ob die Hardware überhaut 
funktioniert?

von Jörg Rockstroh (Gast)


Lesenswert?

Matthias schrieb:
-----------------
Wie kann ich am sichersten/einfachsten testen ob die Hardware überhaut 
funktioniert?
-----------------

Das Portpin über einen Widerstand (irgendwas zwischen 47R und 470R) 
gegen Masse legen. Wenn er nicht auf 0V geht, ist er sehr 
wahrscheinlich defekt.

Mal was anderes: Wie stellst du denn fest, ob der Port High oder Low 
ist? Deine Warteschleife von 1 bis 10000 dauert wahrscheinlich so rund 
30 Millisekunden (größenordnungsmäßig, ich kenn die CPU net so genau). 
Das ist für ein Multimeter viel zu schnell, und auch eine LED siehst du 
da nicht flackern.

von Peter D. (peda)


Lesenswert?

Standardfehler sind:

- Quarz spinnt
- kein Reset gemacht
- EA nicht an +5V
- HEX-Datei: Adreßbereich außerhalb des internen Flash


Peter

von Matthias (Gast)


Lesenswert?

Quarz ist in Ordnung, Resetschaltung haut auch hin,
EA ist an +5V und den Portoin messe ich mit dem Oszillator, aber wie 
stelle ich fest ob der Adressbereich der hex Datei ausserhalb des 
internen Flash ist??? den MC habe ich so programmiert wie oben 
beschrieben da müsste er doch gehen?oder?

von Peter D. (peda)


Lesenswert?

Laß das HEX-File in einem Simulator laufen, der zeigt Dir dann die 
Adresse jedes Befehls mit an.

Peter

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.