C für 8051

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.

Reply to
W. Wipfel
Loading thread data ...

formatting link
Free C compiler for 8051. Mit links zu Projekte

-- Evert Vrieze tel. +31.40.2128359

"W. Wipfel" schreef in bericht news:3f202a83$0$8751$ snipped-for-privacy@news.freenet.de...

Reply to
Evert Vrieze

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

Reply to
Dirk Ruth

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 snipped-for-privacy@matwei.de

formatting link

Reply to
Matthias Weißer

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

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

Du willst Dir "Kernighan & Ritchie, Programmieren in C,

  1. Aufl." kaufen.

Dann solltest Du die Sprache zuerst auf einem System mit einem guten Debugger erlernen: also auf dem PC.

Im Netz wirst Du da nichts finden.

cu, Marco

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

E-Mail: mb-news-a@linuxhaven.de
 Click to see the full signature
Reply to
Marco Budde

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.

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).

Interessante Theorie...

Thomas.

Reply to
Thomas Rehm

Den "Willi" hat in der email-Adresse.

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

Reply to
Rafael Deliano

"Frank Müller" schrieb im Newsbeitrag news:bfpedl$m9u$07$ snipped-for-privacy@news.t-online.com...

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.

Reply to
W. Wipfel

µ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.

Reply to
W. Wipfel

"jetmarc" schrieb im Newsbeitrag news: snipped-for-privacy@posting.google.com...

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.

Reply to
W. Wipfel

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 (+,-,/,%,*,++,--,>,>,

Reply to
Dirk Ruth

"W. Wipfel" schrieb:

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ß.
 Click to see the full signature
Reply to
Tilmann Reh

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.

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
 Click to see the full signature
Reply to
Marco Budde

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);

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.

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?

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.

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.

Kannst Du Dich bitte mal informieren? Das Buch beschreibt keineswegs K&R-C sondern ANSI-C.

Wofür brauchst Du im Embedded Bereich bitte C99?

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).

Dazu sage ich jetzt lieber nichts.

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

E-Mail: mb-news-a@linuxhaven.de
 Click to see the full signature
Reply to
Marco Budde

Hängt vom Grundlagenwissen und von Lehrmaterial ab.

Warum?

Ich würde dieses Buch uneingeschränkt empfehlen. Es wird IHMO alles sehr anschaulich erklärt.

cu, Marco

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

E-Mail: mb-news-a@linuxhaven.de
 Click to see the full signature
Reply to
Marco Budde

MSP430, evtl. auch AVR.

--
AVR-Tutorial, über 350 Links
Forum für AVRGCC und MSPGCC
 Click to see the full signature
Reply to
Andreas Schwarz

Zur Zeit? Ich wuerde mal sagen das diese Sprache mittlerweile die groesste Konstanz und Haltbarkeit hat. Irgendwelche anderen Sprachen werden immer mal kurz Mode und verschwinden dann wieder.

Lachen muss ich z.B immer ueber den alle 1-2 Jahren stattfindenden Smalltalk Artikel in der C't bevor wieder alles im Tiefschlaf versinkt.

Olaf

--
D.i.e.s.S. (K.)
Reply to
Olaf Kaluza

W. Wipfel wrote: > "jetmarc" schrieb im Newsbeitrag >> > 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).

Hallo Willi, vor einigen Wochen hast du ziemlich genau dieselbe Frage gestellt und ziemlich genau die gleichen Antworten erhalten. Die Sprache C beisst nicht, kratzt nicht und verursacht meines Wissens keinerlei körperliche Schmerzen. Wenn du C auf einem PC-Compiler lernst, wirst du nach spätestens 30 Minuten einfache Bit-Manipulationen durchführen. Du wirst sehr schnell motiviert sein. Es ist wirklich egal, ob du dir deine Bitmuster auf dem Bildschirm ausgeben lässt oder später auf den 8051er Ports.

Um so besser! Um eines kommst du halt nicht herum: Du musst halt bei einigen einfachen Programm-Schnipseln sehen, wie dein 8051-Compiler in Assembler übersetzt (um ein Gefühl für den Compiler zu bekommen).

Gruss Joachim Riehn

Reply to
Joachim Riehn

In der Mode? Diese Sprache ist über 20 Jahre alt. Modesprachen sind eher Java (inzwischen wieder out) und C#.

Für den Embedded Bereich ist C eine gute Sprache. Auf anderen System dann durch C++ ersetzt.

cu, Marco

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

E-Mail: mb-news-a@linuxhaven.de
 Click to see the full signature
Reply to
Marco Budde

Die englische Ausgabe ist eine Bleiwüste ohne bildliche Illustrationen die Features anhand von Beispielen runterleiert. Brodies "Starting FORTH", das offizielle Einführungs- buch von FORTH Inc., ist dagegen praktisch ein Comic: da treiben sich SWAP-Drachen und Scharfrichter rum. Dergestalt, daß sich Hochschullehrer in den USA geweigert haben es in Einführungskursen für FORTH zu verwenden, weil es ihre akademiologische Würde angekratzt hätte. Es geht also auch deutlich anders.

MfG JRD

Reply to
Rafael Deliano

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.