Hey,
Ich habe jetzt den Einstieg in die c-programmierung begonnen, bin aber nun auf der Suche nach einer Seite, auf der Sämtliiche befehle, die der Hobbyanwender braucht mit beispielen aufgeführt sind. Gibt es da etwas?
MfG
Michael
Meine eigene cnc-Fräse:
mihuno.oyla3.de
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Deine Frage ist nur bedingt sinnvoll, und zwar aus folgendem Grund:
Es gibt einerseits Sprachelemente, davon gibt es nicht viele, sie sind im Standard festgeschrieben und gehören eben zur Sprache. Und dann gibt es Bibliotheksfunktionen, die teilweise zum Standard gehören, teilweise aber auch AVR-spezifische Erweiterungen und damit nicht standardisiert sind. Und diese Erweiterungen (wie auch viele andere Bibliotheksfunktionen) sind einfach nur in normalem C geschrieben, es gibt daher streng genommen "Unendlich" viele mögliche "Befehle", du musst sie nur programmieren.
Daher: Nimm dir ruhig die verlinkten Tutorials/Quellen vor, du bekommst neben der Sprachstruktur auch noch einen Einblick in die Bibliotheksfunktionen die du benötigst.
mfG
Markus
Hey,
Also ich habe einen tutorial angefangen und ich muss agen, ich verstehe jetzt eben wieder weniger als zuvor. vorallem finde ich es komisch, dass auf jeder seite anderst beschrieben wird, wie ich eine funktion programmieren kann (Zumindest sehen die befehle anderst aus)
Das das ganze so kompliziert und spärlich dokumentiert ist hätte ich nicht gedacht...
MfG
Michael
Meine eigene cnc-Fräse:
mihuno.oyla3.de
Bei den wikibooks war noch ein nettes C-Tutorial versteckt:
http://de.wikibooks.org/wiki/C-Programmierung
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
kompliziert und spärlich dokumentiert ? ohne Grundwissen kommt man eben nicht weit, der Punkt iss, deine Frage kan nicht beantwortet werden, wie markusj schon sagte, es gibt für C definierte Standards, darin enthalten die Erklärung der Syntax und welche Keywords es gibt und was diese tun, so z.B. der begriff "for" steht für den Beginn einer kopfgestuerten Schleife, nach der Syntax "for(<Initialisierung>;<Wiederholbedingung>;<Schle ifenendfunktion>)" gefolgt vom Schleifenkörper.
Alles was jetzt tiefer in die Materie eintaucht, was schon bei derf Textausgabe auf der Konsole anfängt für das berühmte "Hello World" sind nur Bibliotheken angefüllt mit Methoden, die wiederum selbst nur eine Ansammlung von generischen Ausdrücken und (Betriebsystemspezifisch) Assemblercode um die gewünschte Reaktion (Textausgabe am Monitor) herbeizuführen.
Mein Rat an dich, beschäftige dich erst einmal mit einfacher Konsolenprogrammierung (Hello World) um ein Gefühl für die Sprache zu bekommen, wenn du dich mit dem Compiler auseinandersetzen willst und verstehen willst was welches Zeichen an welcher Stelle im Code bewirkt empfehle ich nach den C-Standards zu googlen wobei du dann gleich einen eigenen Compiler entwerfen kannst ^^
Aber eine allgemeingültige Liste für C gibt es nicht nur eine brauchbare Dokumentation über die Sprache und die Anwendungn und dann learning by doing.
PS @ radbruch top-link das iss einfach genial!!!
Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
nicht.
Alle C-Schlüsselwörter:
http://tigcc.ticalc.org/doc/keywords.html
Disclaimer: none. Sue me.
- Weil man es eben auf verschiedene Art und Weise in C realisieren kann.vorallem finde ich es komisch, dass auf jeder seite anderst beschrieben wird, wie ich eine funktion programmieren kann (Zumindest sehen die befehle anderst aus)
Es gibt wirklich nur relativ wenige "Grundbefehle" in C.
z.B. switch, if, for, while usw.
Alles was über diese wenigen Befehle hinaus geht ist in Librarys versteckt.
Es gibt nun einige Standard Bibliotheken wie z.B. string.h die fast jeder C Compiler hat und es gibt spezifische Bibliotheken die speziell zum Compiler, dem Controller, oder der Peripherie ( z.B lcd.h ) gehören.
Du kannst mit einiger Erfahrung auch selber solche Bibliotheken schreiben.
Im Prinzip ist eine von Dir gewünschte Funktion in so einer Library vorhanden und Du rufst sie dann von deinem Programm aus auf.
lcd_putsf("string"); ruft zum Beispiel eine Routine auf die den Text string an ein LCD Display ausgibt.
Dazu muss vorher eine passende Library eingebunden sein.
z.B. #include <lcd.h>
Du rufst also dann in der Library lcd.h den Funktionsaufruf lcd_putsf auf und übergibst ihm den Text string.
Dieser Programmteil kümmert sich darum, das der Text string auf dem Display ausgegeben wird, ohne das Du dich weiter darum kümmern musst.
Du kannst Dir aber auch selber solche includes schreiben um vieleicht ein I²C EEPROM zu beschreiben.
Dort könnte dann eventuell ein ee_putsf("string"); Programmteil drin sein, der den ankommenden Text in ein EEPROM schreibt.
Diesen include kannst Du dann in jedem neuen Programm verwenden, in dem so eine Funktion notwendig ist.
Ich hab mir z.b. kürzlich eine lib geschrieben, in der alle Funktionen zum Ansteuern eine AD9834 ( DDS Chip ) drin sind.
Im Hauptprogramm brauch ich dann blos setftw(12345) eingeben um das Tuningword für eine bestimmte Frequenz einzustellen.
Die Sache mit den lib's ist bei "C" eigentlich genial, nur am Anfang nicht so leicht zu verstehen.
Da hast Du zwar Recht, aber ich halte ASM eigentlich für weitaus einfacher (weil ich das als erstes gelernt habe) und ASM die wenigsten Befehle "zum auswendig lernen) hat.Aus oft gebrauchten Programmteilen bastelt man sich dann selber Funktionen für eine Bibliothek. Leider hat ASM einen nicht zu leugnenden Nachteil gegenüber C oder Basic, es ist immer auf einem Prozessor Typ beschränkt oder man muss "Umlernen".
Als wieder Einsteiger mit ASM und etwas Basic Erfahrung scheue ich vor C zurück, möglich das ich einfach zu alt b.z.w. zu faul bin. Ich habe zwar unter Linux MAL etwas mit C "gespielt" und das hat auch geklappt, aber irgendwie bin ich damit nicht "warm" geworden, auch letztendlich weil C (Klammern u.s.w.) auf einer Amerikanischen Tastatur entwickelt wurde.......Sollte ich wirklich einmal mit Bascom Timing Probleme bekommen bleibt immer noch Inline ASM.
ABER Für User welche einmal Beruflich mit µC's arbeiten wollen ist C UND ASM Pflicht!
Zum Thema Tabelle, selber machen und dann möglichst nach Funktionen wie Sprungbefehle, Schleifen, Mathematik, Zeiger u.s.w. das hilft allgemein am besten.
jeder arbeite da doch irgendwie anders. Ich hatte einmal einen Editor der schon beim Eintippen von Schlüssel Wörter eine Erklärung und mögliche Parameter eingeblendet hat, genial man konnte das selber erweitern. Das ist allerdings 30 Jahre her, ob es so etwas heute noch gibt? Für mich damals Anfänger war das jedenfalls sehr sehr Hilfreich.Beinahe so schön wie die TAB Taste unter Linux.
Gruße Richard
@wkrug: Dann aber auch nicht vergessen, dem Linker die Lib mitzuteilenWird gerne bei nicht in Quelltextform vorliegenden Bibliotheken vergessen ... (dass du das weißt ist mir klar, aber andere eben nicht)
@Richard: Darüber kann man vortrefflich streiten. Wer Sprachen mit mehr "Drumherum" gewohnt ist, findet ASM (nicht unbedingt) unbequemer, sicher aber Umständlicher. Ich persönlich Nutze ASM dort wo ich es für sinnvoll erachte (also primär Tuning, oder Bootloader) und mache sonst einen großen Bogen außenrum. In der Regel kann man mit Hochsprachen schneller, sauberer, einfacher und portabler arbeiten. Und wenn ich AVRs mit Bascom programmieren müsste, käme ich mir vor wie in einem Ferrari der auf 30km/h gedrosselt wurde ...
mfG
Markus
PS: Der Tipp mit dem Tabelle-Selbst-Machen ist übrigens empfehlenswert, erstens hat man ein Nachschlagewerk das auf die eigenen Bedürfnisse und Denkweisen zugeschnitten ist und zweitens lernt man dadurch besser.
Lesezeichen