- Labornetzteil AliExpress         
Ergebnis 1 bis 10 von 30

Thema: Suche Nachhilfeunterricht über skype (Jugendliche bevorzugt)

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter-Spezialist Avatar von -schumi-
    Registriert seit
    30.12.2009
    Ort
    Wasserburg am Inn / Bayern
    Alter
    31
    Beiträge
    449
    Ich fang mal an


    ich weis nicht, wie eine c- datei aussieht
    In einer C-Datei steht der Quellcode für deinen Attiny2313. Das ist also der Code, den der Controller das ausführt, hier kannst du sagen was der Controller dann machen soll.

    Damit du diese Datei bearbeiten und so die Befehle für deinen Controller schreiben kannst brauchst du einen Editor. Aber Word, LibreOffice und solche Sachen fallen hier raus, die sind für was anderes gedacht (Briefe mit Bildern, Überschriften und so Zeug).

    Was du brauchst ist ein Editor, der Einfach nur einen Text schreibt. Ganz ohne Überschriften usw. Und wenn du Windows hast, findest du so einen sogar schon vorinstalliert: Unter Zubehör ist das Notepad. (Unter Linux/bzw. Ubuntu der Texteditor/Gedit oder so).

    Der kann einfach nur stupide Text schreiben.

    Damit man den Text aber besser lesen kann und noch viele andere Funktionen hast (wie z.B. Suchen und ersetzen, automatische Vervollständigung von Wörtern usw.) solltest du was anderes als dieses schnöde Notepad verwenden.

    Ein Kanditat währe z.B. Geany. Der ist vollkommen kostenlos, auf Windows und Linux (und warscheinlich auch OSX) zuhause und bietet viele tolle Funktionen zum Programmieren. Downloaden kannst du den hier: http://www.geany.org/Download/Releases#windows
    Unter Linux ist der bei der jeweiligen Distribution in der Paketverwaltung selbstversändlich enthalten.

    Jetzt klickst du erst einmal auf "Neu" (ganz links, das Blatt mit dem grünen Plus).

    Da kommt jetzt dein Quellcode rein. Am besten du kopierst mal folgendes rein:
    Code:
    int main (void)
    {
        while(1);
        return 0;
    }
    Das ist das Gründgerüst eines jeden C-Programms, aber dazu später mehr

    Und jetzt gehst du mal auf "Datei" -> "Speichern unter". Am besten du legst dir auf dem Desktop einen Ordner mit dem Namen "mein_erstes_2313-Programm" (oder sowas) an. Da drin speicherst du das Dokument dann als "main.c".

    Und wie dir jetzt vielleicht auffällt verfärbt Geany jetzt einige Wörter mit Farben. Das nennt sich Syntaxhighlighting und dient der besseren Lesbarkeit. Außerdem erkennt man so Tippfehler einfacher (Wenn ein Wort entgegen der Erwartungen nicht/falsch eingefärbt wird).

    So, jetzt hast du ne schnöde main.c und die muss irgendwie auf deinen 2313. Jetz gibts allerdings noch ein Problem: Wenn du dir den Text in Geany mal ansiehst sind das vorwiegend englische Wörter die mehr oder weniger sinn Ergeben (Am Anfang warscheinlich eher weniger^^).

    Der 2313 kann aber kein Englisch, desshalb muss man das Programm übersetzen. Da nimmt man sich aber kein Wörterbuch, sondern ein Programm das das ganze für einen übernimmt. Das Programm nennt sich "Compiler". Und davon gibts ziemlich viele, aber du solltest einen bestimmten benutzen: den AVR-GCC. Der ist ebenfalls von vorn bis hinten FreeWare und auch OpenSource.

    Der braucht aber auch noch ein paar Bibliotheken, und dann noch ein bischen hiervon und ein bischen davon.., am besten du klatscht dir ein fertiges Paket auf die Festplatte: http://sourceforge.net/projects/wina...nAVR/20021111/ (Die bin-install.exe)
    Falls du Linux hast brauchst du folgende Pakete: "avr-libc" und "gcc-avr", der rest sollte schon drauf sein.

    So, jetzt ist die Ansteuerung des Compilers aber nicht ganz einfach, desshalb nimmt man sich ein makefile zuhilfe. Ich hab dir in den Anhang eins reingepackt (Musst die .zip entpacken!). Das schmeist du einfach in den selben Ordner wie deine main.c.

    Damit der das jetzt übersetzt musst du folgendes machen: Öffne ein Terminal (unter Windows Start -> Ausführen -> cmd.exe) und gehe in den Ordner mit der main.c, das geht so:
    Am Anfang bist du irgendwo (Bei Linux in deinem Heimverzeichnis, bei Windows weis ich es nicht)
    mit "cd Desktop" wechselst du in den Ordner "Desktop", mit "cd .." kannst du in den übergeordneten Ordner springen. Mit "dir" unter Windows/ "ls" unter Linux kannst du dir den Ordnerinhalt anzeigen lassen.

    Irgendwann wirst du dann hoffentlich in dem Ordner mit der main.c und dem makefile angelangt sein. Dann gibst du in das Terminal "make all" ein. Das heißt, der Compiler soll dir die main.c jetzt gefälligst in eine für den 2313 verständliche Sprache übersetzen.

    Und das sollte er dann nach möglichkeit auch machen, sprich es läuft ne Menge Text vorbei und es sollte am Ende kein "Error" oder sowas stehen.

    Und weil das ganze mit dem cd und dem Terminal relativ umständlich ist, kann man in Geany auch Buttons/Shortcuts mit diesen Aufgaben belegen:
    Geh mal auf "Erstellen" -> "Kommandos zum erstellen konfigurieren" (die main.c muss geöffnet sein!). Und für das Kompilieren (ganz oben) ist auch schon irgendwas mit GCC eingetragen, aber wir schnalzen da das "make all" rein. Also den Inhalt der Zelle löschen und "make all" reinschreiben. Außerdem muss bei "Arbeitsverzeichnis" "%d" eingtragen werden, damit er den Befehl auch im richtigen Ordner ausführt.

    Dann das ganze mit "OK" bestätigen. In der Symbolleiste oben hast du eine blaue Pyramide von der aus ein gelber Pfeil auf eine rote Kugel zeigt. Wenn du da drauf klickst sollte er jetzt kompilieren (In dem Fenster ganz unten siehst du dann den selben Text wie vorhin in dem Terminal). Es kann sein dass eine Fehlermeldung ähnlich "all muss nicht ausgeführt werden" oder so kommt. D.h. er kompiliert jetzt nicht nochmal, weil du ja deinen Quellcode noch garnicht verändert hast. Du kannst da z.B. einfach ein Leerzeichen bei deinem Text hinzufügen und wieder wegmachen, speichern, und dann sollte er wieder kompilieren.

    Jetzt solltest du in deinem Ordner jede Menge weiteres Geraffel vorfinden, das du da nicht reingeschmissen hast. Das hat alles der Compiler erzeugt. Und da drunter sollte auch irgendwo eine main.hex sein. Und die ist jetzt deine übersetzte main.c. Und die versteht der Controller jetzt auch, d.h. die muss nur noch irgendwie in den Controller rein. Und das kannst du jetzt z.B. mit PonyProg machen, wie du es ja schon einmal gemacht hast.

    Wenn der Controller dann fertig programmiert ist macht er - oh wunder - rein garnichts^^. Das liegt daran, dass im Quellcode noch nichts zum ausführen steht, ist ja nur das Grundgerüst. Was der dann machen soll muss noch zum Quellcode dazu, aber das kommt später.

    Wenn du das soweit geklappt hat hast du die erste große Hürde eh schon überwunden, dann kanns mit C lernen losgehen
    (Siehe Kampis Angebot 2 Beiträge weiter oben, hehe )


    Hoffe das hilft weiter.

    Viele herzliche Grüße und viel Erfolg
    -schumi-

    [EDIT] Verdammt, doch glatt das makefile vergessen^^
    Angehängte Dateien Angehängte Dateien
    Geändert von -schumi- (29.08.2011 um 20:43 Uhr)

  2. #2
    und ich hab verzweifelt die makefile gesucht

    Edit: "make all" geht bei mir auf windoof7 dann nicht? was ist da falsch?
    Geändert von frankensteins-freund (29.08.2011 um 21:19 Uhr)
    Meine eigene cnc-Fräse:
    mihuno.oyla3.de

  3. #3
    Erfahrener Benutzer Roboter-Spezialist Avatar von -schumi-
    Registriert seit
    30.12.2009
    Ort
    Wasserburg am Inn / Bayern
    Alter
    31
    Beiträge
    449
    Was kommt für eine Fehlermeldung? (Am besten den gesamten Terminalinhalt hier in Codeblock reinkopieren)

  4. #4
    Microsoft Windows [Version 6.1.
    Copyright (c) 2009 Microsoft Co

    C:\Users\Michael>cd desktop

    C:\Users\Michael\Desktop>cd test1

    C:\Users\Michael\Desktop\test1>make all
    Der Befehl "make" ist entweder falsch geschrieben oder
    konnte nicht gefunden werden.

    C:\Users\Michael\Desktop\test1>
    Was habe ich falsch gemacht?
    Meine eigene cnc-Fräse:
    mihuno.oyla3.de

  5. #5
    Erfahrener Benutzer Roboter-Spezialist Avatar von -schumi-
    Registriert seit
    30.12.2009
    Ort
    Wasserburg am Inn / Bayern
    Alter
    31
    Beiträge
    449
    Eieiei, da fehlt noch ein Programm. Unter Linux ist das "make" nämlich absolut kein Problem, aber Windows kennt das natürlich nicht einfach so...

    Ich bin jetzt davon ausgegangen, dass WinAVR das dazuinstalliert... Hast du denn nach der installation neu gestartet, damit das dämliche Windows die globalen Pfade endlich übernimmt (Das aktualisiert das immer nur beim Hochfahren)

    Ansonsten musst du noch das da dazuinstallieren: http://gnuwin32.sourceforge.net/packages/make.htm
    (Ob das jetzt genau funktioniert weis ich nicht, hab schon lange kein Windows mehr)

    Und dann Neustart nicht vergessen :-D

  6. #6
    hey, ich habe das make update draufgespielt, rechner neu gestartet. die sache mit dem "make all" geht aber immer noch nicht.

    MfG
    Michi
    Meine eigene cnc-Fräse:
    mihuno.oyla3.de

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    37
    Beiträge
    1.225
    Falls du das verlinkte Make installiert hast: Wirf es wieder runter.
    Du brauchst WinAVR, das ist ein ganzes Programmpaket welches unter anderem den bereits von Schumi erwähnten Compiler (AVR-GCC) sowie verschiedene weitere Werkzeuge beinhaltet. Außerdem kommt mit Programmers Notepad (das ich nie genutzt habe) auch noch ein mächtigerer Texteditor mit.

    Um Schumis Ausführungen noch etwas zu ergänzen:
    Dein AVR versteht eine eigene Sprache aus Nullen und Einsen. Dein Computer versteht eine andere Sprache, die sogenannten Maschinenbefehle sind bei jeder Prozessorfamilie anders ausgestaltet. Die Aufgabe des Compilers besteht jetzt darin, deinen Programmcode in Maschinencode zu übersetzen, was er in mehreren Schritten macht. Das bereits erwähnte Makefile steuert diesen Prozess, indem es dem Programm "make" sagt, welche Dateien benötigt werden. Am Ende hast du ein HEX-File, das im Endeffekt den Maschinencode enthält.

    Zur C-Programmierung:
    Rechner sind dumm, sie machen nur genau das was du ihnen sagtst, und kein bisschen mehr. Sie können nicht hellsehen und sind furchtbar versessen auf Regeln nach denen sie arbeiten können. Wenn dein Code nicht tut was du willst, hast du vermutlich eine der Regeln verletzt oder dich missverständlich/falsch ausgedrückt.
    Die Ausführung von Programmen erfolgt normalerweise eine Zeile nach der anderen, das ist der sogenannte Programmfluss. An einer definierten Stelle geht die Ausführung los (das ist main()) und folgt von da an deinen Anweisungen. Du kannst über sogenannte Fallunterscheidungen Bereiche deines Programmes überspringen und mit Schleifen bestimmte Stellen wiederholen. Um nicht alles hintereinander schreiben zu müssen gibt es Unterprogramme, sogenannte Prozeduren oder Funktionen, die häufig benutzte Abläufe zusammenfassen können. Gibst du den Befehl eines solchen Unterprogramms ein, wird dieses gestartet und nach Beendigung wird normal weitergearbeitet.

    Solche Vorgänge lassen sich in Flussdiagrammen darstellen, ich habe Mal ein Beispielbild mit einer Fallunterscheidung und einer Schleife angehängt. Jedes Rechteck steht dabei für eine Reihe von Anweisungen die hintereinander ausgeführt werden, die Raute für eine Fallunterscheidung. Pfeile zeigen den Programmfluss. Solche Diagramme sind nützliche Werkzeuge um sich im Voraus darüber Gedanken zu machen, wie dein Programm ablaufen soll.

    mfG
    Markus
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken FlussdiagrammeI.gif  

Ähnliche Themen

  1. Internationale Workshops für Jugendliche
    Von bounded im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 0
    Letzter Beitrag: 15.08.2011, 12:54
  2. suche ein Buch über GTK+
    Von extremesports im Forum Buchempfehlungen
    Antworten: 1
    Letzter Beitrag: 10.04.2011, 15:51
  3. Suche Buch über LED
    Von Goldenflash im Forum Buchempfehlungen
    Antworten: 9
    Letzter Beitrag: 04.04.2009, 18:44
  4. welche motoren bevorzugt ihr?
    Von James im Forum Motoren
    Antworten: 1
    Letzter Beitrag: 16.12.2008, 12:08
  5. PIC bevorzugt ?
    Von gandalf im Forum PIC Controller
    Antworten: 2
    Letzter Beitrag: 25.08.2006, 15:04

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress