mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Probleme mit P89LPC913


Autor: Marco K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich hab mir ein kleines Platinchen mit einem P89LPC913 als µC und ein 
paar anderen Bauteilen gebastelt.

Nun hab ich in Keil ein kleinen C-Prgramm geschrieben.

#include <reg913.h>

void main(void) {
  unsigned char temp = 0;

  P2M1 = 0;
  P2M2 = 0;

  while (1) {
    P2 = temp;
    temp++;
    }
}

Dieses hab ich in den Controller gebrannt, aber es tut sich nichts. Ich 
hab mit nem Oszilloskop nach gemesen, das einzigste was mir aufgefallen 
ist das die Pins von Port 2 3,3V haben und alle anderen 0V. Aber keine 
Änderungen.

Ich habe hier ein MCB900 von Keil dort habe ich das Programm mal in 
einen 89LPC938 gebrannt, dort lief es.

Ich hab auf meinen P89LPC913 mal ein Programm von jemand anders 
gebrannt, dort konnte ich zumindest eine Pegeländerung mit dem 
Oszilloskop messen. Allerdings konnte ich jetzt nicht überprüfen ob das 
Programm auch richtig abgearbeitet wird.
Auch ein Platine nur mit dem Prozessor bestückt macht dasselbe.

Jetzt weiß ich nicht mehr weiter was ich noch machen könnte um das Teil 
ans laufen zu bekommen. Ich hoffe ihr habt noch ein paar Vorschläge!

Hier mal kurz die Hard-/Software die ich verwende.
Keil µVision3 (Demo)
Flash Magic v4.64.1619
Keil MCB900 (als ISP-Programmer)

Falls ihr noch Infos braucht, einfach fragen!

MfG
Marco K.

Autor: R. W. (quakeman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also falls du den Demo Compiler von Keil verwendest, kann es sowieso 
nicht funktionieren. Denn dieser generiert den Code erst ab der 
Startadresse 0x800, weshalb der Code nur funktioniert, sobald mehr als 
2kb Flash im Controller drin sind. Der LPC913 hat aber nur 1kb Flash, 
weshalb der generierte Code nie funktionieren würde.

Falls du eine Vollversion verwendest bitte ab hier weiterlesen. :)

Ich habe deinen Code mal eben in Keil eingefügt und getestet und einen 
Fehler gefunden. Ich gehe mal davon aus, daß du die START900.A51 in 
deinem Projekt hinzugefügt hast, wie es üblich ist. In dieser Datei 
kannst du die default Einstellungen für den LPC913 vornehmen. Leider 
sind diese default Einstellungen NICHT für den LPC913 im speziellen 
angepasst. Denn in der Kategorie "Power-On Initialization of Memory" der 
Eintrag für die Größe des internen Ram steht auf 0x100 was 256 Bytes 
entspricht. Aber der LPC913 hat nur 128 Bytes, weshalb du diesen Eintrag 
auf 0x80 abändern musst. Oder du setzt den Eintrag auf 0 um das Löschen 
des Rams beim ersten Start abzuschalten.
Der Fehler ist sofort aufgetreten, als ich die Simulation gestartet 
hatte. Nach der Änderung funktioniert das Programm zumindest im 
Simulator problemlos.
Mit den falschen Ram Einstellungen hat der Controller nämlich beim Start 
deines Programms versucht 0 in Speicherbereiche zu schreiben, die gar 
nicht erlaubt sind und deshalb vermutlich die gesamte Abarbeitung 
gestört.

Ciao,
     Rainer

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.