mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmel 89C51RD2 in C programmieren


Autor: Sven B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Grüße,
nun ich programmiere seit einiger Zeit 80c535 und
den Atmel 89C51RD2 also 5051er Kern Microproz.'s in
Assembler. Nun werden meine Assembler Programme schon
etwas umfangreicher (Grafik-Display versch. Algorithmen).
Das ich zu dem Entschluss gekommen bin die Programme in
C zu schreiben. So da fängt mein Problem an.
Ich habe nur Grundkenntnisse in C und hab keine Ahnung
wie die Form des C Programms für einen MC auszusehen
hat und wie man solches verwirklicht! Und geschweige
denn mit welchen Compiler man dieses compiliert.
Für Infos Hilfe und Tip's währe ich sehr dankbar.

MFG Sven B.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier findest Du einige Beispiele:

http://www.specs.de/users/danni/contents.htm


Das Problem ist bloß, an einen guten Compiler zu kommen.
Der Keil ist sehr gut, leider wird der aber nur sehr teuer verkauft.


Peter

Autor: christian kulig (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Compiler gibts von Keil (Keil.com) und von Raissonance.com.
Das sind jedenfalls die wichtigsten '51 Compilerbauer.
Beide bieten eine kostenlose Evaluation Version zum Download an.
Die ist voll funktionsfaehig, solange man keine esoterischen Sachen 
haben will,
wie spezielle Libraries herstellen oder Preemptive 
Multitaskingbetriebssysteme.

Autor: Sven B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Grüße,
so den freien Keil habe ich mir gesaugt. So... ähh...
nun ja... fangen wir so an, kann mir bitte jemand ein
Beispiel senden in dem z.B. ein Port eingelesen wird
und an einem anderen Port wieder ausgegeben wird.
Oder vielleicht gleich eine Seite in der die C51 Befehle
aufgelistet sind oder sogar beschrieben.

Danke...

Autor: christian kulig (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
n'abend,
Beispiele en masse gibts hier auf mikrocontroller.com,
auf den Herstellerseiten, die da waeren: Philips.com, Atmel.com,
intel (8051 Erfinder) und infineon und alle anderen natuerlich auch.
Und natuerlich auf Keil.com und Raisonance.com.
Schau auch mal in ein anderes Forum, 8052.com (nicht 8051.com!), hier
gibts viele Experten, die auch gerne Ihren Senf anbringen.

Die Beispiele heissen Application Note, und sind
oft gut (und auf englisch) dokumentiert.

Viel Spass,
Christian

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt keine "C51-Befehle".
Das ist ein stinknormaler ANSI-C-Compiler mit einigen CPU-spezifischen 
Erweiterungen.
Z.B. zur Auswahl bestimmter Speicherbereiche oder für Bitzugriffe.


Auch unter C kommst Du nicht umhin, Dich erstmal gründlich mit der CPU 
zu beschäftigen.

Also, was sind Ports, wie werden die angesprochen, wie unterscheidet man 
Eingang und Ausgang, was bedeutet read-modify-write.

Und was sind Timer, UART und all die anderen SFRs.

Nicht umsonst wird oft empfohlen, diese Grundlagen erstmal in purem 
Assembler auszuprobieren.

Danach weißt Du auch, wie Du das in C machen mußt.

Auch hilft Dir der "C51-Primer" weiter.


Peter

Autor: Sven B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@peter
du solltest erstmal lesen lernen... sorry... aber wie du
oben lesen kannst arbeite ich schon seit langem mit Assembler und ich 
kenne, denk ich, die Befehle und den Proz.
IN UND AUSWENDIG schon wegen meiner Ausbildung.

Was ich meine... ach egal christian kulig hat mir
weitergeholfen... aber der wichtig Boss peter eben nicht... sorry...

MfG Sven B.
PS.: Naja eigentlich hast du mir auch weitergeholfen
denn jetzt weis ich das die Port und Bit Befehle die
gleichen sind wie im Assembler. Danke.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja ja, ich hab nur den unteren Beitrag gelesen und nicht rausgefunden, 
worin die Schwierigkeit liegt, von:

MOV P1, P0

auf:

P1 = P0;

zu kommen. Und deshalb gedacht, es müßte an mangelnder CPU-Kenntnis 
liegen. Das ganz oben hatte ich schon wieder völlig vergessen.
Ich denke mal, es ist besser, lieber einmal daneben zu liegen, als gar 
nicht zu antworten.


Der C51-Primer erklärt alles nochmal ganz genau, z.B.:

http://www.hitex.co.uk/c51primer/c51primer.pdf


Peter

Autor: Sven B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
:-) Dank dir...

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.