C für 8051

W

W. Wipfel

Guest
Hallo!

nachdem mich mein neues Buch über C für Mikrocontroller
enttäsucht hat, dachte ich mir, frag doch mal die NG.

Ich suche FÜR ANFÄNGER eine Einführung in C mit der Prämisse
auf Microcontroller der 8051 Reihe. <-----------
Also auch deren speziellen Sachen und MIT Beispielen. <-----------
(wenn es geht mit Erklärung zu den Programmier Beispielen)

Ich habe keinerlei Vorkenntnisse in C (Ass und Basic schon) !

Suche dahingehend gute Links im Netz, die Bücher sind ja dahingehend
nicht zu gebrauchen.

Herzlichen Dank imVoraus!


by W.
 
http://sdcc.sourceforge.net
Free C compiler for 8051.
Mit links zu Projekte
--
Evert Vrieze
tel. +31.40.2128359

"W. Wipfel" <willi.wipfel@gmx.de> schreef in bericht
news:3f202a83$0$8751$9b622d9e@news.freenet.de...
Hallo!

nachdem mich mein neues Buch über C für Mikrocontroller
enttäsucht hat, dachte ich mir, frag doch mal die NG.

Ich suche FÜR ANFÄNGER eine Einführung in C mit der Prämisse
auf Microcontroller der 8051 Reihe. <-----------
Also auch deren speziellen Sachen und MIT Beispielen. <-----------
(wenn es geht mit Erklärung zu den Programmier Beispielen)

Ich habe keinerlei Vorkenntnisse in C (Ass und Basic schon) !

Suche dahingehend gute Links im Netz, die Bücher sind ja dahingehend
nicht zu gebrauchen.

Herzlichen Dank imVoraus!


by W.
 
"W. Wipfel" <willi.wipfel@gmx.de> schrieb

nachdem mich mein neues Buch über C für Mikrocontroller
enttäsucht hat, dachte ich mir, frag doch mal die NG.

Ich suche FÜR ANFÄNGER eine Einführung in C mit der Prämisse
auf Microcontroller der 8051 Reihe. <-----------
Was willst du da mit C? Der hat doch keinen implementierten
Interpreter, da kommt man doch mit direkten Assembler oder
einen Basic-Compiler wesentlich einfacher zurecht.

Frank
 
On Thu, 24 Jul 2003 20:51:41 +0200, "W. Wipfel" <willi.wipfel@gmx.de>
wrote:

Hallo!

nachdem mich mein neues Buch über C für Mikrocontroller
enttäsucht hat, dachte ich mir, frag doch mal die NG.

Ich suche FÜR ANFÄNGER eine Einführung in C mit der Prämisse
auf Microcontroller der 8051 Reihe. <-----------
Also auch deren speziellen Sachen und MIT Beispielen. <-----------
(wenn es geht mit Erklärung zu den Programmier Beispielen)

Ich habe keinerlei Vorkenntnisse in C (Ass und Basic schon) !

Suche dahingehend gute Links im Netz, die Bücher sind ja dahingehend
nicht zu gebrauchen.
Vergiss Bücher, ein einfaches kleines Taschenbucch zum Nachschlagen
über C reicht völlig, wenn Du schon eine Programmiersprache kennst.
Schau Dir einfach die verschiedenen Datentypen an und wofür man die
braucht, bzw. wie Schleifen (welche Schlüsselwörter) aufgebaut sind.
Dann noch ein Kapittel über Zeiger und das war's dann auch schon. Mehr
gibt es in C nicht.

Speziell zum Controller schau Dir einfach die Beispiele an, die der
Compilerhersteller mitliefert oder nimm ein anderes fertiges Programm
und versuche es zu verstehen und nachzuvollziehen.
Wenn Du dabei an irgendeiner konkreten Stelle nicht mehr weiter
kommst, dann melde Dich mit einem Beispiel hier und Dir wird geholfen.


Tschö
Dirk
 
W. Wipfel schrieb:
Ich suche FÜR ANFÄNGER eine Einführung in C mit der Prämisse
auf Microcontroller der 8051 Reihe. <-----------
Also auch deren speziellen Sachen und MIT Beispielen. <-----------
(wenn es geht mit Erklärung zu den Programmier Beispielen)

Ich habe keinerlei Vorkenntnisse in C (Ass und Basic schon) !

Suche dahingehend gute Links im Netz, die Bücher sind ja dahingehend
nicht zu gebrauchen.
Vor ca. einem Jahr war in der Elektor diesbezüglich was mit einem
koatenlosen C-Compiler.

Die Frage ist noch, warum es ein 8051 sein muss...

Würde einen Controller wählen, der mit kostenlosen Tools Echtzeit-
debugging auf Sourcecode und Assemblerebene unterstützt...


Gerald
 
Ich habe keinerlei Vorkenntnisse in C (Ass und Basic schon) !
Dann solltest Du nicht direkt (alleinig) mit dem 8051 anfangen.
Wenn etwas nicht klappt, weisst Du sonst nicht warum. Auf jeden
Fall parallel auch einen Compiler auf dem PC benutzen, wo Du
ausfuehrliche Meldungen anzeigen kannst (gerade am Anfang).

Die alten Compiler von Borland gibt es kostenlos per Download. In
jedem Fall solltest Du MSDOS oder win32 "CommandLine" Anwendungen
erstellen, damit eine Naehe zwischen dem 8051 und der PC Umgebung
besteht.

Als Buch taugt jedes gute C Buch ohne 8051-Bezug, ergaenzt durch
die Onlinehilfe Deines Compilers. Ausser den I/O Schnittstellen
gibt es fast keine Unterschiede. Vorsicht vor Buechern mit
"Visual" oder "Windows" im Namen. Falls Du Englisch kannst, hol
Dir "C - The complete Reference" von Osborne. Das bezieht sich
eigentlich auf gar kein Betriebssystem.

Marc
 
Frank Müller wrote:
"W. Wipfel" <willi.wipfel@gmx.de> schrieb

nachdem mich mein neues Buch über C für Mikrocontroller
enttäsucht hat, dachte ich mir, frag doch mal die NG.

Ich suche FÜR ANFÄNGER eine Einführung in C mit der Prämisse
auf Microcontroller der 8051 Reihe. <-----------

Was willst du da mit C? Der hat doch keinen implementierten
Interpreter, da kommt man doch mit direkten Assembler oder
einen Basic-Compiler wesentlich einfacher zurecht.
Interpreter? Für C? C ist eine Compilersprache. Der Compiler läuft z.B. auf
einem PC und erzeugt eine ASM-Datei die dann vom Assembler und Linker z.B.
in eine HEX-Datei verwandelt wird. Diese spielst du auf den Controller und
gut.



--
Matthias Weißer
matthias@matwei.de
http://www.matwei.de
 
"Gernot Fink" <G.Fink@gmx.net> schrieb

nachdem mich mein neues Buch über C für Mikrocontroller
enttäsucht hat, dachte ich mir, frag doch mal die NG.

Ich suche FÜR ANFÄNGER eine Einführung in C mit der Prämisse
auf Microcontroller der 8051 Reihe. <-----------

Was willst du da mit C? Der hat doch keinen implementierten
Interpreter, da kommt man doch mit direkten Assembler oder
einen Basic-Compiler wesentlich einfacher zurecht.

Von den Hunderten verfügbaren Varianten hat nicht mal ein Prozent
einen Basicinterpreter eingebaut.
Drum habe ich da oben auch Compiler geschrieben, heute
verwendet man doch sowieso einen PC zum programmieren,
und da gibt es einige Basic-Compiler, die den Basic-
Quellcode in Assembler umwandeln, den man dann in den
8051 laden kann.
besser kommt man natürlich wenn man gleich in Assembler
schreibt, und nur die Menomic in den Maschinencode
umwandeln läßt.

Frank
 
W. Wipfel wrote:
^^^^^^^^^

Bitte den Realnamen setzen, alles andere gilt im Usenet
als unhöflich. Danke.

nachdem mich mein neues Buch über C für Mikrocontroller
enttäsucht hat, dachte ich mir, frag doch mal die NG.

Ich suche FÜR ANFÄNGER eine Einführung in C mit der Prämisse
auf Microcontroller der 8051 Reihe. <-----------
Da wirst Du kein gutes Buch finden. Eine Sprache sollte
man niemals abhängig von einer CPU oder einem OS lernen.
Lerne zuerst die Sprache ANSI C und für den Rest braucht
man kein Buch: wer C programmieren kann, kann jede CPU
in C programmieren (die Erweiterungen des Keil Compilers
für den 8051 sind z.B. relativ klein).

Also auch deren speziellen Sachen und MIT Beispielen. <-----------
(wenn es geht mit Erklärung zu den Programmier Beispielen)
Du willst Dir "Kernighan & Ritchie, Programmieren in C,
2. Aufl." kaufen.

Ich habe keinerlei Vorkenntnisse in C (Ass und Basic schon) !
Dann solltest Du die Sprache zuerst auf einem System mit
einem guten Debugger erlernen: also auf dem PC.

Suche dahingehend gute Links im Netz, die Bücher sind ja dahingehend
nicht zu gebrauchen.
Im Netz wirst Du da nichts finden.

cu, Marco

--
S: Minolta: Winkelsucher (VN), VC-9

E-Mail: mb-news-a@linuxhaven.de
Deutsches Linux HOWTO Projekt: http://www.linuxhaven.de
 
Gerald Oppen <Gerald.Oppen@web.de> writes:

kostenlosen C-Compiler.

Die Frage ist noch, warum es ein 8051 sein muss...
DANN darf man bitte auch fragen: "Warum 'C'"!?

Würde einen Controller wählen, der mit kostenlosen Tools Echtzeit-
debugging auf Sourcecode und Assemblerebene unterstützt...
Und käme dann eventuell bei FORTH an (und kann trotzdem 8051 oder
anderes wählen).

Hol -Linuxtag-Standdienst mit Nachwirkungen- ger
 
Holger Petersen <hp@kbbs.org> writes:

"Matthias Weißer" <DTMAN@gmx.de> writes:


Interpreter? Für C? C ist eine Compilersprache.
[...]

Es gibt mindestens einen C-Interpreter (auf CP/M oder MS/DOS?)!
Es gibt sogar einen (freien) C++-Interpreter:
root.cern.ch/root/Cint.html

--
Dr. Juergen Hannappel http://lisa2.physik.uni-bonn.de/~hannappe
mailto:hannappel@physik.uni-bonn.de Phone: +49 228 73 2447 FAX ... 7869
Physikalisches Institut der Uni Bonn Nussallee 12, D-53115 Bonn, Germany
CERN: Phone: +412276 76461 Fax: ..77930 Bat. 892-R-A13 CH-1211 Geneve 23
 
Marco Budde wrote:

Lerne zuerst die Sprache ANSI C
ANSI C (ISO C) kennt beispielsweise keine I/O-Zugriffe, ist eine
reine Intellektuellen-Sprache für Informatiker. Man versuche nur
einmal in den üblichen C-Newsgroups eine Frage nach Portzugriffen
zu stellen... BTDT :->

Für Anfänger empfehle ich vielmehr einen der üblichen Compiler:
Für Jemanden, der vor der Kommandozeile keine Angst hat, ist der
GCC brauchbar (und anspruchsvoll) - hier insbesondere der AVR-GCC,
der wie der Name schon sagt, für die AVR-Controller-Familie
angepasst wurde. Hierfür gibt es zig Beispiele und Sourcen im
Internet und jede Menge Hilfen.

Du willst Dir "Kernighan & Ritchie, Programmieren in C,
2. Aufl." kaufen.
Davon ist heute sehr abzuraten. Abgesehen von der sehr schludrigen
Übersetzung (der Übersetzer konnte kein Deutsch) ist das Kernighan
und Ritchie-"C" eher von historischem Wert. Leider kenne ich noch
kein Standardwerk zu C99 - dem aktuellen C-Derivat, das international
von ANSI und ISO als Standard anerkannt ist - welches heute inzwischen
von fast allen modernen Compilern zumindest teilweise unterstützt wird
(erkennt man u.a. daran, dass Kommentare mit // abgetrennt werden
können, was von C++ übernommen wurde; es gibt aber auch noch andere
nützliche Ergänzungen).

Suche dahingehend gute Links im Netz, die Bücher sind ja dahingehend
nicht zu gebrauchen.
Im Netz wirst Du da nichts finden.
Interessante Theorie...

cu, Marco
Thomas.
 
W. Wipfel wrote:
^^^^^^^^^
Bitte den Realnamen setzen,
Den "Willi" hat in der email-Adresse.

Du willst Dir "Kernighan & Ritchie, Programmieren in C,
2. Aufl." kaufen.
Die Programmiersprache C ist nicht eben leicht erlernbar
und dieses Buch ist als Einführung eher unangenehm.
Es wurde ehdem immer empfohlen, weil es kaum Alternativen
gab.

MfG JRD
 
"Frank Müller" <DW2FM@t-online.de> schrieb im Newsbeitrag
news:bfpedl$m9u$07$5@news.t-online.com...
"W. Wipfel" <willi.wipfel@gmx.de> schrieb

nachdem mich mein neues Buch über C für Mikrocontroller
enttäsucht hat, dachte ich mir, frag doch mal die NG.

Ich suche FÜR ANFÄNGER eine Einführung in C mit der Prämisse
auf Microcontroller der 8051 Reihe. <-----------

Was willst du da mit C? Der hat doch keinen implementierten
Interpreter, da kommt man doch mit direkten Assembler oder
einen Basic-Compiler wesentlich einfacher zurecht.

Sorry, ich wollte keine Meinung das ich nun doch kein
C machen soll, sondern Tips wie ich es lernen kann.
Mal davon abgesehen habe ich im Zusammenhang mit
C noch nie von einem Interpreter gehört.
Das ist eher Basic Ecke. C hat Compiler !

Ich habe einen Basic Compiler für 8051, aber mit dem kann
man nun mal nicht alles so realisieren wie man es gern hätte.
Die Flexiblität ist da nicht sooo gut.
Und ASS ist für den Fall zu umständlich.

Wenn ich was mit C anfange will, dann hat das schon seinen Grund,
zumal ich schon geschrieben hatte, daß ich mit mit Basic uns ASS
etwas auskenne......


By W.
 
"Matthias Weißer" <DTMAN@gmx.de> schrieb im Newsbeitrag
news:bfr3v9$i09mk$1@ID-76219.news.uni-berlin.de...
Frank Müller wrote:
Drum habe ich da oben auch Compiler geschrieben, heute
verwendet man doch sowieso einen PC zum programmieren,
und da gibt es einige Basic-Compiler, die den Basic-
Quellcode in Assembler umwandeln, den man dann in den
8051 laden kann.

Basic ist aber eigentlich eine typische Interpretersprache. Es gibt zwar
auch Basic-Compiler für ľC aber C ist eigentlich _die_ (Hoch)Sprache für
ľC.


Bei RISC Architektur (AVR, PIC) mag das ja stimmen....
aber was 8051 angeht war es so nicht geplant.
Die Dinger kamen auf den Markt bevor C so richtig
erwachsen war.
Die AVR und die PIC sind für C zwar eher geignet, aber
ich brauch C nun mal wegen der Komplexität der
Aufgabenstellung. BASIC zu unflexibel, ASS zu umständlich
für diesen Fall.....


by W.
 
"jetmarc" <jetmarc@hotmail.com> schrieb im Newsbeitrag
news:af3f5bb5.0307241639.4d6e7cd0@posting.google.com...
Ich habe keinerlei Vorkenntnisse in C (Ass und Basic schon) !

Dann solltest Du nicht direkt (alleinig) mit dem 8051 anfangen.
Wenn etwas nicht klappt, weisst Du sonst nicht warum. Auf jeden
Fall parallel auch einen Compiler auf dem PC benutzen, wo Du
ausfuehrliche Meldungen anzeigen kannst (gerade am Anfang).

Ich will gerade deswegen mit den Dingern das machen,
weil ich micht mit der Hardware einigermaßen auskenne.
Und das ist totz C nun mal bei Programmierung von
Mircrocontrollern notwendig.
Es gibt dazu ja spez. C Erweiterungen für die entsprechende
Hardware und auch Dinge die man z.b. mit dem 8051 machen kann,
mit dem AVR aber so z.B. nicht. (und umgekehrt)


By W.
 
On Fri, 25 Jul 2003 23:43:56 +0200, "W. Wipfel" <willi.wipfel@gmx.de>
wrote:

"Dirk Ruth" <d.ruth@expressnet.info> schrieb im Newsbeitrag
news:l8g0ivgpsjkvvj0han69q2roigmbo340qq@4ax.com...

Vergiss Bücher, ein einfaches kleines Taschenbucch zum Nachschlagen
über C reicht völlig, wenn Du schon eine Programmiersprache kennst.
Schau Dir einfach die verschiedenen Datentypen an und wofür man die
braucht, bzw. wie Schleifen (welche Schlüsselwörter) aufgebaut sind.
Dann noch ein Kapittel über Zeiger und das war's dann auch schon. Mehr
gibt es in C nicht.

Das mag ja ne nette Idee sein, aber noch keiner (außer extrem begabte)
hat Mathematik wirklich begriffen nur weil er sich
die Formeln angesehen hat.
Etwa Hintergundinfo und Tips sind sicherlich notwendig.
Und bei Programmiersprachen kann man auf deutlich mehr
Ärger stoßen als in der normalen Mathematik.

Also da überschätzt Du das ganze völlig. Du hast Doch geschrieben,
dass Du schon mal programmiert hast.

Du brauchst: für den Anfang:
Definitionen, Deklarationen, Schleifen(Kopf- Fußgesteuert). Arithmetik
(+,-,/,%,*,++,--,>,<,>>,<<) Logik(|,&,^,!)(später noch Pointer)und
ein paar Funktionsaufrufe aus stdlib,h, string.h evtl. noch stdio.h.

Alles andere ist compiler-/prozessorspezifisch und dürfte kaum in
einem Buch zu finden sein. Dafür gibt's dann die Beispiele dazu.


Speziell zum Controller schau Dir einfach die Beispiele an, die der
Compilerhersteller mitliefert oder nimm ein anderes fertiges Programm
und versuche es zu verstehen und nachzuvollziehen.
Wenn Du dabei an irgendeiner konkreten Stelle nicht mehr weiter
kommst, dann melde Dich mit einem Beispiel hier und Dir wird geholfen.


Das ist zwar ein nettes Angebot, aber ich hab meist so viele
Fragen das dies schon in Spam ausarten würde :)
Nicht doch. Einfach ausprobieren.
Nimm einfertiges Beispiel und fang an es zu ergänzen und abzuändern.
Dabei immer schön auf die Fehler und Warnungen des Compilers
achtgeben.

Tschö
Dirk
 
"W. Wipfel" schrieb:

Ich WILL C lernen und KEIN Forth.
Das war doch anhand der Betreff Zeile sehr einfach zu erkennen!
Wobei das doch eh schon im Museum liegt, oder wer
prorgrammiert noch damit ?!?!?
Blödsinn.

A propos C: "Millionen fliegen können nicht irren."
C ist zur Zeit eben Mode, ob es eine "gute" Sprache ist, sei mal
dahingestellt...

--
Dipl.-Ing. Tilmann Reh
Autometer GmbH Siegen - Elektronik nach Maß.
http://www.autometer.de

==================================================================
In a world without walls and fences, who needs Windows and Gates ?
(Sun Microsystems)
 
W. Wipfel wrote:

Die AVR und die PIC sind für C zwar eher geignet,
PICs für C geeignet? Wie kommst Du darauf? Deren uralte
Architektur (aus den 70ern?) ist eigentlich für alles außer
Assembler völlig ungeeignet. Aber auch der 8051 ist für
C IHMO nur bedingt zu gebrauchen (schon solche elementaren
Dinge wie Pointer werden, jedennfalls beim Keil, in
Software emuliert.

aber
ich brauch C nun mal wegen der Komplexität der
Aufgabenstellung. BASIC zu unflexibel, ASS zu umständlich
für diesen Fall.....
Assembler ist IHMO sowieso nur in sehr wenigen Fällen
heute noch sinnvoll.

--
S: Minolta: Winkelsucher (VN), VC-9

E-Mail: mb-news-a@linuxhaven.de
Deutsches Linux HOWTO Projekt: http://www.linuxhaven.de
 
Thomas Rehm wrote:

Lerne zuerst die Sprache ANSI C
ANSI C (ISO C) kennt beispielsweise keine I/O-Zugriffe,
Das ist so pauschal z.B. schon mal völliger Blödsinn. Nicht selten
wird sowas z.B. über bestimmte Memory Adressen gemacht und das
geht sogar mit Standard ANSI C:

unsigned char *video_mem = 0x232323;

video_mem[0] = 0x00;
...

Ansonsten sehen z.B. Portzugriffe sowieso auf jedem System und
bei jedem Compiler anders aus. Aber wenn man bereits ANSI C
kann, ist es kein Problem, sich die dafür notwendigen, proprietären
APIs in 5 Minuten anzueignen:

unsigned char a;
a = inp (0x50);

ist eine
reine Intellektuellen-Sprache für Informatiker.
Du solltest Dich vorher bitte mal richtig informieren, bevor Du
einem Einsteiger einen solchen Unfug erzählst. Das wichtigste in
der Entwicklung ist übertragbares Grundlagenwissen. Wer ANSI C
kann, kann eigentlich alle Embedded Systeme ohne große Einarbeitung
programmieren.

Leute, die nur einen bestimmten Compiler wie z.B. Keil kennen,
sind dagegen in der Praxis nicht zu gebrauchen.

Man versuche nur
einmal in den üblichen C-Newsgroups eine Frage nach Portzugriffen
zu stellen... BTDT :-
Nein, das sollte man nicht versuchen, da das dort nicht
hingehört. Nur was hat das jetzt mit dem Thema zu tun?
Sprechen wir hier von irgendwelchem Gehacke oder von einer
prof. Herangehensweise?

Für Anfänger empfehle ich vielmehr einen der üblichen Compiler:
Für Jemanden, der vor der Kommandozeile keine Angst hat, ist der
GCC brauchbar (und anspruchsvoll) - hier insbesondere der AVR-GCC,
der wie der Name schon sagt, für die AVR-Controller-Familie
angepasst wurde.
Ach und der gcc ist kein ANSI C/C++ Compiler? Interessante These.
Mal davon abgesehen, daß der gcc für die gewünschte 8051 Ziel-
architektur nicht geeignet ist.

Du willst Dir "Kernighan & Ritchie, Programmieren in C,
2. Aufl." kaufen.
Davon ist heute sehr abzuraten.
Jede, der etwas Ahnung von C-Programmierung hat, wird Dir hier ganz
sicher nicht zustimmen. Das Buch ist nicht ohne Grund die Bibel der
C Programmierer. Weitere Bücher zu C wird man in der Regel nicht
benötigen.

Abgesehen von der sehr schludrigen
Übersetzung (der Übersetzer konnte kein Deutsch) ist das Kernighan
und Ritchie-"C" eher von historischem Wert.
Kannst Du Dich bitte mal informieren? Das Buch beschreibt keineswegs
K&R-C sondern ANSI-C.

Leider kenne ich noch
kein Standardwerk zu C99
Wofür brauchst Du im Embedded Bereich bitte C99?

- dem aktuellen C-Derivat, das international
von ANSI und ISO als Standard anerkannt ist - welches heute inzwischen
von fast allen modernen Compilern zumindest teilweise unterstützt wird
ROTFL, na klar. Mal abgesehen vom gcc dürfte es wenige, verbreitete
Compiler geben, die überhaupt was von C99 unterstützen (mal von den
C++ Kommentaren abgesehen).

Interessante Theorie...
Dazu sage ich jetzt lieber nichts.

--
S: Minolta: Winkelsucher (VN), VC-9

E-Mail: mb-news-a@linuxhaven.de
Deutsches Linux HOWTO Projekt: http://www.linuxhaven.de
 

Welcome to EDABoard.com

Sponsor

Back
Top