Hallo uC-Freunde. An dieser Stelle möchte ich mich auch gleich entschuldigen. Unterwegs habe ich nur ein Smartphone, und das kennt kein Micro-Symbol ;). Zu meinem Anliegen: Am Freitag bekam ich endlich ein gutes Evaluations-Board, das STK500 von Reichelt. Zum.Programmieren habe ich gleich einen entsprechenden Programmer mit dazu bestellt, von Diamex oder so glaube ich. Ist ein USB to ISP-Programmer. Nach mehreren Stunden vergeblicher Kontaktaufnahme mit dem Board über die unterschiedlichsten AVR-Studio-Varianten, angefangen von V 4.16 bis V 5 habe ich dann einen Freund kontaktiert. Mna könne es schon fast einen "epischen Fehler" nennen - steckte doch der ISP-Stecker im falschen Port, nämlich in dem weiß hinterlegten "ISP 6-Pin" anstelle des rot hinterlegten. Naja - die Beschriebung des Boards ist englisch, und mein Fachenglisch ist etwas eingerostet. Naja. Kontakt bekamen wir immer noch nicht. Nach 2 weiteren Stunden hatttme ich es dann doch irgendwie geschafft eine dauerhafte Verbindung hinzubekommen und nun läuft alles wie geschmiert. Ach ja - nutze AVR-Studio 4.18 SP3 auf Win 7 64-Bit. Nun kann ich noch kein Assembler programmieren. Hab ein Testprogramm zwar für meinen ATMega 8515 umschreiben können und es lief auf anhieb, jedoch sind meine eigentlichen Kenntnisse gleich NULL. Nun meine Fragen: Gibt es irgendwo ein Tutorial für Assembler, bei welchem man quasi im Programmieren Lernen kann (mit Syntax-Erklärungen, dass auch ein Anfänger alles versteht)? Auch wäre eine komplette Bibliothek nicht verkehrt, welchr einem die Benutzung von Timern, Zählern, Ausgängen und Eingängen sehr gut erklärt... Ich bin recht firm in der BASCOM-Programmierung und komme damit 10mal besser klar als mit Assembler. Kann man ein bas-Programm in ein Hex umwandeln, sodass ich das via AVR-Studio in den Controller flashen kann? Auch müsste ein entsprechender Debugger dabei sein... Übrigens kann ivh seltamerweise den Controller auch via AVR-Studio problemlos im EEPROM als auch im FLASH beschreiben. Weiß nicht, warum alle immer dieses Ponyprog empfehlen, welches bei.mir eh net läuft (Verbindungsfehler ohne Ende) Wäre echt dankbar für gute und nützliche Antworten. Ich sag das deswegen, weil ich auf Antworten wie "Du hast noch ne Menge zu lernen" verzichten kann. Das weiß ich nämlich auch selbst. Wenn es irgendeine Möglichkeit gibt, ein Basom-Proramm zu debuggen und dann auch noch in ein HEX umzuwandeln - immer raus damit :D MFG Maik
Maik Schulze schrieb: > Gibt es irgendwo ein Tutorial für Assembler, AVR-Tutorial > bei welchem man quasi im > Programmieren Lernen kann (mit Syntax-Erklärungen, dass auch ein > Anfänger alles versteht)? Wenn du spezifische Fragen hast, stell sie hier im Forum und jemand wird dir weiterhelfen > Kann man ein bas-Programm in ein Hex umwandeln, sodass ich das > via AVR-Studio in den Controller flashen kann? BASCOM (danach googeln)
Maik Schulze schrieb: > Gibt es irgendwo ein Tutorial für Assembler, bei welchem man quasi im > Programmieren Lernen kann (mit Syntax-Erklärungen, dass auch ein > Anfänger alles versteht)? Auch wäre eine komplette Bibliothek nicht > verkehrt, welchr einem die Benutzung von Timern, Zählern, Ausgängen und > Eingängen sehr gut erklärt... guggst du links oben: AVR -> AVR-Tutorial :-) Übrigends, warum brauchst du einen ISP, wenn du das STK500 hast? Da ist ein viel besserer Progger drauf als bei dem Olimex.
Hallo, Maik Schulze schrieb: > Nun kann ich noch kein Assembler programmieren. wenn du BASCOM kannst, dann würde ich dir das Programmieren in "C" vorschlagen. Ist es für dich dir Wichtig, in Assembler zu programmieren? Ein STK500 Board muss nicht unbedingt in Assembler programmiert werden, das kann auch über das AVR-Studio 4.18 in "C" erledigt werden. Gruß Xmega
Vielen Dank erst einmal für die Antworten. Fragen habe ich massig - da könnt ihr sicher sein, dass ich die auch stellen werde. Ich hatte vor 2 Jahren mal C ausprobiert, kam damit aber irgendwie nicht richtig klar. Lag vielleicht daran, dasa ich jetzt erst AVR Studio zum Laufen bekommen habe. Das Wichtigste ist der Header. Dazu bräuchte ich eine gute Vorlage, am Besten mit einer Beschreibung, was die einzelnen Syntax bedeuten. Außerdem möchte ich in Zukunft auch den internen Taktgeber ansprechen. Nutzen tue ich folgende Prozessoren: Vorrangig den Atmaga8515L-8PU und den Atmega8-16PU. Für beide brauche ich dann die Header. Da sich Bascom und C voneinander stark unterscheiden, brauche ich ein gutes Tutorial. Ich nehme an, ihr empfehlt mir ebenfalls eines hier aus dem Forum, korrekt? Die ersten Programme zum Einstieg sollen mit den Ausgängen spielen. Mit dem STK500 geht das echt gut umzusetzen. Für weitere kann ich ja Add-On-Boards nutzen oder selbst Fertigen (ist ja net sooo schwer). Ausgabe von Schrift usw. soll erst einmal keine Rolle spielen. Im AVR-Studio muss ich dann anstelle von Assembler AVR-GCC wählen, korrekt? Wie schaut das aus mit Bibliotheken im Programm selbst? Vorerst möchte ich davon Abstand nehmen. Kann ich die Programme auch ohne Bibliothek schreiben? Hoffe, dass die Fragen nicht allzu blöd gesellt sind. Sind wie gesagt meine ersten richtigen Erfahrungen. Hatte mir vor 2 Jahren mal das myAVR bestellt, aber ohne Testfunktionen ist das einfach nur Mist. MFG Maik
Hallo Maik, wenn du dich mit Basic auskennst - dann nutze doch Bascom. Mit Bascom kannst du die erstellten Programme kompilieren - so dass du als Resultat ein hex-file erhälst und dieses flashst du dann mit WinAVR auf den µC im STK500. Gruß keinGast
Maik Schulze schrieb: > Gibt es irgendwo ein Tutorial für Assembler, bei welchem man quasi im > Programmieren Lernen kann Versuch mal das hier: http://www.avr-asm-tutorial.net/avr_de/beginner/index.html
Maik Schulze schrieb: > Ich hatte vor 2 Jahren mal C ausprobiert, kam damit aber irgendwie nicht > richtig klar. Lag vielleicht daran, dasa ich jetzt erst AVR Studio zum > Laufen bekommen habe. > > Das Wichtigste ist der Header. Nö. Das Wichtigste ist ein C-Buch!
C-Buch hab ich. Ist aber anscheinend nicht das Richtige. Dort geht es viel mehr um das Programmieren von Dateien für den Computer. Hab 3 verschiedene Bücher - alle dasselbe. Wenn das mit Bascom gut klappen sollte, dann wäre das ja supi. Allerdings weiß ich nicht, ob Bascom auf meinem Rechner läuft. Ist ein Laptop von Acer mit Win7 64Bit. Ich hab gehört, dass es bei Bascom-Programmen zu Problemen kommen kann. Ich möchte, dass das Prog hinterher läuft. Muss ich im Bascom denn noch irgendetwas einstellen? Bisher hab ich nur einfache Programme zur Nutzung auf dem heimischen Rechner erstellt. Halt alte Schule... Mein erster Rechner war ein Pentium I mit Win95. Da liefen DOS-Programme wie Bascom und QBasic noch problemlos... MFG
> "epischen Fehler" Ich habe mich erst mal schlau gemacht was du damit meinen könntest. Meinst du damit einen "angedichteten Fehler" oder einen "eingeredeten Fehler" ? Um mit einem AVR umgehen zu können brauchst du: 1. einen AVR und das dazugehörige Datenblatt 2. einen guten isp-Programmer http://www.fischl.de/usbasp/ 3. ein paar Grundlagen zur Programmierung und gute Beispiele http://www.mikrocontroller.net/articles/AVR 4. ein C - Buch http://openbook.galileocomputing.de/c_von_a_bis_z/ 5. eine Entwicklungsumgebung (AVR-Studio oder Eclipse + AVR-Plugin) und WinAVR 6. Die Bereitschaft ein einfaches LED-Blinkprojekt umzusetzen
Du stellst hier viele Fragen, beschreibst das was du bisher gemacht hast und willst nun in C einsteigen? Höre mal, lerne zuerst mal vernünftig mit dem was du hast umzugehen. Okay, zum proggen über einen Laptop brauchst du einen ISP-Programmer. Nur solltest du mal das wesentliche vom STK500 verstanden haben, auch was beim AVR-Studio einzustellen ist, damit du über Bascom den Progger bedienen kannst. Was bei Bascom zu tun ist, um ein Hexfile zu erstellen, wie man mit Bascom das Programm debuggen kann usw. Wenn du das vernünftig kannst, darfst du dich an C trauen. Also immer schön der Reihe nach.
Maik Schulze schrieb: > Ich hab gehört, dass ... Das ist dein Hauptproblem. Alles, was du bisher zum Thema "weisst", basiert auf Gerüchten, falschen Vorstellungen, und Unwissen. Das ist ja zunächst einmal nicht weiter schlimm, jeder fängt mal an. Lies halt mal die o.a. links durch, und versuche dir klar zu werden, was du eigentlich willst (Assermbler lernen, C lernen, Bascom benutzen, eingach nur ein Programm shcreiben, ...) dann klappt das auch mit einem AVR. Um auch mal eine deiner Fragen zu beantworten: Zum Debuggen auf dem AVR selber brauchst du einen JTAG-Programmier-Adapter, also einen Dragon, oder einen JTAG-ICE II. Das geht mit deinem STK500 nicht, egal, mit welchem Compiler du dein Prugramm erstellt hast. AVR-Studio hat einen Simulator, der simuliert auf Sourcecodelevel Assembler oder C. Oliver
Oliver, alles schön und gut, was du hier beschreibst. Nur, was nützt einem ein Dragon oder ein anderer JTAG-Programmieradapter bzw das was zum debuggen nötig ist, wenn man -außer in englich- nirgendwo genau lesen bzw sich informieren kann, was debuggen bedeutet, wie es funktioniert, was da genau wie abläuft, wie man das zu interpretieren hat usw. Über vieles kann man sich nur informieren wenn man technisches englisch beherrscht. Dann muss man den technischen Krempel auch noch verstehen.
ich da schrieb: > Nur, was nützt einem ein Dragon oder ein anderer JTAG-Programmieradapter > bzw das was zum debuggen nötig ist, wenn man -außer in englich- > nirgendwo genau lesen bzw sich informieren kann, was debuggen bedeutet, > wie es funktioniert, was da genau wie abläuft, wie man das zu > interpretieren hat usw. Genau aus diesem (und ähnlichen Gründen) ist es extrem angeraten, seine ersten Programmiererfahrungen auf einem PC zu machen. Denn dort funktionieren die Dinge genau so, wie sie in den Büchern (für eine bestimmte Entwicklungsumgebung auf dem PC) beschrieben sind. Wechselt man dann auf den AVR, dann * hat man schon ein gewisses Grundverständnis für die systemunabhängige C Programmierung. ALso die Dinge, die in C immer gleich sind, egal welche CPU_Betriebssystem_Entwicklungsumgebung man benutzt * kennt die Begriffe * braucht sich nur noch auf die Spezialitäten zu stürzen, in denen sich die Programmierung eines AVR von der auf einem PC unterscheidet, weil ein PC nun mal keine Ports hat, an die man LED anschliesst oder einen ADC an dem man Spannungen misst. Wie eine for-Schleife funktioniert, ist auf allen C Systemen gleich. Stringverarbeitung: detto. Variablen, arithmetische Ausdrücke, if, Promotion rules, Operatorenreihenfolge, Funktionen, Preprozessor .... alles identisch. Das alles kann man (um 3 Größenklassen besser) locker auf einem PC unter Anleitung eines Buches (und ganz wichtig: Durchexerzieren der Übungen im Buch) lernen. Und wie die speziellen Dinge eines AVR funktionieren (Zugriff auf Hardware) ... dafür gibt es das AVR-GCC-Tutorial. > Über vieles kann man sich nur informieren wenn man technisches englisch > beherrscht. Immer langsam mit den jungen Pferden. Technisches Englisch, gerade im Bereich Informatik, ist sehr einfach gehalten. Schliesslich müssen das auch die Japaner verstehen. Man benötigt keinen Abschluss in englischer Literatur um sowas lesen zu können. Am Anfang wirds ein bischen holpern, aber da ohnehin immer die gleichen Begriffe benutzt werden, hat man schnell raus was sie bedeuten.
Karl Heinz, deine Antwort ist zwar -für mich- verständlich, aber ich kann nicht nachvollziehen was du da am Beispiel lernen von C am PC mittels gutem Buch vorschlägst. Einmal hängt es vom Buch ab, -du hast keines vorgeschlagen, angeraten- dann ob das Buch verständlich -für normal bedarfte, keine Informatiker oder Abiturienten- geschrieben wurde. Also ob zum verstehen vom Buch Vorkenntnisse erfoderlich sind. Dann davon, was im Buch an Lernbeispielen beschrieben ist, umsetzbar ist. Verschiedene Bücher von ELV sind für Normalos unverständlich. Ich glaube Roland Walter hat in seinem Buch über Mikrocontroller mal geschrieben, er hatte aufgrund einer Erfahrung mit Studenten geschrieben, er will sein Buch für Anfänger verständlich halten, soweit wie möglich Fachbegriffe, Fachwörter weg lassen. Ansonsten sind viele Bücher vollgepfropft mit technischen Begriffen in fremder Sprache. Also nicht gut für Anfänger. Buchauszug aus meinem Buch "Die C Sprache", alle diese Beispiele -die ich hier einfüge- stellen das gleiche Programm dar. Alle Versionen sind kompilierbar und laufen richtig. Man sieht aber im extremen Fall Nr. 6, dass das Programm auch fast unlesbar geschrieben werden kann. Der Stil des Programm schreibens ist also sehr wichtig. 1. main() ( int i; for(i=0;i<5;++i) printf("Guten Tag\n"); ) 2. main() ( int i; for(i=0;i<5;++i) printf("Guten Tag\n"); ) 3. main() ( int i; for(i=0;i<5;++i) printf("Guten Tag\n"); ) 4. main() { int i; for(i=0; i<5;++i) printf("Guten Tag\n"); } 5. main() { int i; for( i=0; y<5) printf( "Guten Tag\n") ; } 6. main() { int i; for( i=0; i<5; ++i) printf( "Guten Tag\n" ) ; } Beispiele Ende Das hier zitierte Beispiel ist nur eines von vielen Argumenten die nicht gerade für das lernen von C sprechen. Wenn man schon gewaltige Fehler beim schreiben eines C Programmes per Stil machen kann, sich dann durch das nicht funktionierende Programm bzw die Fehlermeldungen kümmern muss, bewirkt das nicht gerade ein lernen wollen von C. Hinzu kommt ja noch der ganze Wust an Header, Linker usw. Da leicht ein- bzw durch zu steigen motiviert nicht gerade C erlernen zu wollen. Mein aufgeführtes Buch zum erlernen der Sprache C geht ja noch, weil darin wichtige Punkte gut erklärt sind. Andere C Bücher erklären dies nicht so ausführlich, steigen schon viel zu schnell in die Materie C ein. Das Problem ist ähnlich als wolle ein Matheprofessor einem Grundschüler ein gutes Buch über Mathe empfehlen. Er kann das wohl besser für Studenten.
ich da schrieb: > Da leicht ein- bzw durch zu steigen motiviert nicht gerade C erlernen zu > wollen. Es zwingt dich ja niemand. Ansonsten gibt es dazu heutzutage so viel Infos im Netz, daß man zusammen mit einem guten Buch das schon hinkriegt. Maik Schulze schrieb: > Ich bin recht firm in der BASCOM-Programmierung Je nun, dann bleib doch einfach dabei. Oliver
Jetzt habt ihr mich komplett verwirrt. Ehrlich. Nun weiß ich weder Ein noch Aus. Nur, dass mir von C als Anfänger abgeraten wird. Sei's drum - ich nehme den Ratschlag dankend an. Eine Bitte für die Zukunft: Mir ist nicht geholfen, wenn ihr von der Argumentation abfallt und anfangt, euch mit Fachbegriffen zu bewerfen, die ich nicht verstehe. Streiten ist eh ein NoGo. Sicher - ich habe keine großartigen Kenntnisse gon Assembler und auch keine, wie ich ein Programm mit Bascom debugge, geschweige denn was debuggen überhaupt genau ist. Dazu ein großes Lob an den Vorsprecher, denn ich habe.mich nicht wirklich getraut, das auszuspechen. Aus Büchern und simulationen lernt man zwar ne Menge, jedoch kann ich auch aus Erfahrung sprechen, dass gerade die direkte Programmierung nach 1-2 Simulationen ein echtes Erfolgserlebnis dar stellt und das Interesse am Programmieren versteift. Ich meine - wozu habe ich das Programmer-Board, wenn ich es eh nicht nutzen darf... Wenn die Ausgänge genau das tun was sie sollen - DAS ist ein Erfolgserlebnis, welches man quasi auch anfassen kann. Ich bin sehr gut in der Erstellung/Programmierung von SPS-Steuerungen, nur kann man das leider nur ansatzweise mit der AVR-Prorammierung vrgleichen. Wäre echt zu schön, würde ein Controller mit der gleichen Syntax programmiert werden wie eine SPS. Naja - man kann nicht alles haben :D Werde mich am Freitag mit dem Assembler-Tutorial befassen. Bin derzeit auf Montage, da hab ich wenig Zeit. Wenn Bascom so schwierig bei der Programmerstellung in Bezug auf Comlilieren und Simulieren ist, dann sollte ich wohl doch Assembler komplett lernen. Man wird ja nicht jünger und wächst eh mit seinen Aufgaben. MFG Maik
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.