www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik C Anfänger Frage


Autor: Joe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

fange gerade mit C für 8051 controller an und verwende den SDCC. Ich
habe versucht das Hello World Programm aus den C Beispielen von Keil zu
compilieren und erhalte eine Fehlermeldung.

Hat jemand ein Hello World beispiel für den SDCC das funktioniert ?

Gruß

Joe

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt hunderte 8051 Controller.

Was verstehst du unter Hello World?
- das Blinken einer LED
- die Ausgabe eines String per USART oder auf einem LCD
- ...

Gib dir mal ein wenig Mühe!

Autor: Peter Dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"...und erhalte eine Fehlermeldung."

Schön für Dich.
Hast Du sie gelesen ?

Sorry, aber meine telephatischen Fähigkeiten sind begrenzt.


Peter

Autor: Joe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry,

hast ja recht, der compiler meckert über eine Funktion putchar welche
offenbar von printf benötigt wird.

Genaue Fehlermeldung reiche ich nach.

Joe

Autor: Joe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier das Programm

#include <AT89S8252.H>
#include <stdio.h>

void main (void) {

/*------------------------------------------------
Setup the serial port for 1200 baud at 16MHz.
------------------------------------------------*/

SCON  = 0x50;
TMOD  = 0x20;
TH1   = 221;
TR1   = 1;
TI    = 1;

  while (1) {
    printf ("Hello World\n");   /* Print "Hello World" */
  }
}


Fehlermeldung bei SDCC:
ASLINK undefined Global _putchar referenced by module vprint ....

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nun geh einmal einen Schritt weiter und hinterfrage diese Fehlermeldung
...

Was will dir dein Compiler sagen? Warum benötigt er die Funktion
_putchar?

Autor: Joe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also, vielleicht nocheinmal der Hinweis Anfänger!

Vermutung: Hört sich an wie put character, meint Zeichen zur
Schnittstelle 'putten' ?

Gehört diese Funktion beim SDCC nicht zur stdio LIB ?`

Joe

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Printf weiß nicht, ob du die Daten über die serielle Schnittstelle
ausgeben, auf einem LCD darstellen, ... willst.

Deshalb solltest du diese Basisroutine (put character) selbst
implementieren und printf verwendet sie dann.

Autor: Joe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ich C programmieren könnte würde ich das machen. Wie auch immer,
beim Keil Compiler ist sie dabei. Compiliere ich Sie mit SDCC
funktioniert es, baue ich diese Routine mit der ersten zusammen so
ernte ich jede menge neue Fehler (ich weiss, Glaskugel...)

Hast du vielleicht ein funktionierendes komplettes Beispiel, das würde
die Sache erheblich verkürzen.

Vielen Dank im vorraus

Joe

Autor: Joe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wirklich keiner hier der SDCC verwendet und ein Beispiel hat ???

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das sollte in der Dokumentation des SDCC bzw. dazugehörigen Tutorials
beschrieben sein.

Was sagt denn folgender Kommandozeilenbefehl

  findstr /s /c:"putchar" *.c

aufgerufen im Installationsverzeichnis von SDCC?

Autor: Joe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bin fündig geworden, oder nicht, ein Beispiel ist in SDCC nicht
enthalten (sagt die Doku).

Also, letzter Versuch, hat jemand ein funktionierendes Beispiel für den
SDCC ????

Gruß

Joe

Autor: Andreas W. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Joe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Andreas,

vielen Dank, sieht gut aus.

Joe

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.