mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 8051 MC geht irgendwie nicht


Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Jörg Rockstroh (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Standardfehler sind:

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


Peter

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Peter Dannegger (peda)
Datum:

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

Peter

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.