C-Programmieren - Wie am besten anfangen

  • C

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von BiedermannS.

    C-Programmieren - Wie am besten anfangen

    Hallo,

    ich würde gerne C-Programmieren lernen, jedoch hauptsächlich mit Linux und (Sehr wichtig) mit Amtel/AVR-IC's
    Unter den IC's habe ich:
    Amtel ATTINY 2313-20PU [DIL20] (2stück)
    Amtel ATMEGA32 16PU 0803B (1stück)
    Amtel ATMEGA16 16PU 0752J (3stück)

    das ATMEGA32 und ATMEGA16 IC sind auf einer Platine mit 3LED's, 3Knöpfe, I2C-Bus, Anschluss für ein Display, RTC-IC, CM75-IC und einer EEprom, ebenso ein 16Mhz Quarz (Alles für je einen Chip, beide sind per I2C verbunden)

    Zu meiner Momentanen Linux-Umgebung:
    Linux Mint mit avrdude usw. vorinstalliert.

    Könnt ihr mir ein Buch oder Tutorial empfehlen, das beides fein verbindet?

    mfg

    gfc

    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Zum allgemeinen lernen von c/c++ ist linux sowieso besser, da in den meisten Fällen bereits Compiler und Debugger vorinstalliert sind. Also, wie immer, erst mal die Grundlagen üben. Dafür gibts mittlerweile >100 Tutorials.

    Nachdem die Grundlagen sowie die allgemeine Syntax bekannt ist, ist es wichtig folgende Themen bis aufs letzte zu trainieren
    • Was sind Pointer? Wie erstellt man diese und wie bzw. wann verwendet man Sie. Auch das Löschen von Pointern ist wichtig. - Das kann, sehr sehr sehr sehr viele Probleme mit sich bringen, wenn da was nicht passt.
    • Richtige Speicherverwaltung. Speicher reservieren und wieder richtig freigeben. - Nichts ist leichter als ein Memory-Leak aufgrund falschem Speichermanagements.
    • Safe Coding. Bei Usereingaben muss man nicht nur überlegen was der User eingeben darf, sondern was er eingeben kann. (Was passsiert wenn ein String mit 1000 Zeichen eingegeben wird?) Das ist für Microcontroller eher nicht so wichtig, aber wenn dann sollte man es gleich richtig lernen. Und sobald der Microcontroller ans Netz angehängt wird, solltest du dir auch hier über den Input Gedanken machen.
    • Auch nicht zwingend notwendig, aber trotzdem gut wenn man es verwendet: Apps Hungarian - Ungarische Notation, aber nicht Systems Hungarian. Hierzu auch noch ein kleiner Artikel (In Englisch)
    • Kommentare, Kommentare, Kommentare. Auch wenns nervig ist, aber in C extrem wichtig.
    • Zettel und Stift verwenden. Für kurze Nebenrechnungen oder zum Niederschreiben von Codeänderungen oder whatever. Was aufgeschrieben ist, bleibt aufgeschrieben. Ist etwas erledigt ist, wird abgehakt.
    • Ganz wichtig - viel üben!!


    So, das wars erst mal. Wenn mir noch was einfällt, schreib ichs dazu
    SWYgeW91IGNhbiByZWFkIHRoaXMsIHlvdSdyZSBhIGdlZWsgOkQ=

    Weil einfach, einfach zu einfach ist! :D

    BiedermannS schrieb:

    Zum allgemeinen lernen von c/c++ ist linux sowieso besser, da in den meisten Fällen bereits Compiler und Debugger vorinstalliert sind.

    OT: Hat man ja unter Windows auch gar nicht mit Visual Studio.
    | Keine Fragen per PN oder Skype.

    Linus Torvalds schrieb:

    Encoding the type of a function into the name (so-called Hungarian notation) is brain damaged - the compiler knows the types anyway and can check those, and it only confuses the programmer. No wonder MicroSoft makes buggy programs.

    SeriTools schrieb:

    OT: Hat man ja unter Windows auch gar nicht mit Visual Studio.

    Visual Studio ist vorinstalliert? das ist mir neu...

    @Quadsoft: Hättest du dir den Link angesehen, wüsstest du dass es in der Original Ungarischen Notation (Apps Hungarian) nicht um die Typen der Variablen geht sondern um die Art.
    SWYgeW91IGNhbiByZWFkIHRoaXMsIHlvdSdyZSBhIGdlZWsgOkQ=

    Weil einfach, einfach zu einfach ist! :D
    hmm

    Hab mir das GCC Tutorial anders vorgestellt. Etwas wie das von der Schule, jedoch verwenden wir da PIC anstatt AVR.

    sieht aber auch verständlicher aus (PIC) und bei avr blick ich nicht so durch :S

    mfg

    gfc
    Auch wenn der Thread nun schon ein paar Tage alt ist, muss es unbedingt Linux sein?

    Unter Windows kannst du nämlich das Atmel Studio verwenden.

    Atmel Studio ist eine veränderte Version des Visual Studios (mit unterstützung für Plugins usw...)


    Hier ein kleines Tutorial: Link
    SWYgeW91IGNhbiByZWFkIHRoaXMsIHlvdSdyZSBhIGdlZWsgOkQ=

    Weil einfach, einfach zu einfach ist! :D