mikrocontroller.net

Forum: Compiler & IDEs C Anfänger Tutorial AVR


Autor: Christian Schifferle (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo C-Freunde

Jetzt geht es endlich weiter.
Nachdem ihr alle nun ja schon ein wenig C im Allgemeinen kennengelernt 
habt folgt nun die lange erwartete Fortsetzung.

Im ersten Teil gibt es eine allgemeine Einführung und ihr werdet lernen, 
wie ihr digitale Signale mit dem AVR erfasst und ausgebt.

Weitere Folgen werden in loser Folge erscheinen, je nachdem, wie viel 
Zeit ich jeweils investieren kann.

Einfach die beiliegende ZIP-Datei in einen beliebigen Ordner entpacken 
und das Dokmument Index.htm doppelklicken.

Kollegiale Grüsse aus der Schweiz

Christian

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab's auch mal zu den Artikeln hochgeladen, ok?

http://www.mikrocontroller.net/articles/c2/

Autor: Christian Schifferle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab's gesehen, allerdings funktionieren die Hover-Schaltflächen nicht.

Gruss
Christian

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich will nur anmerken, daß der "Interruptgesteuerte Programmablauf" mit 
leerer Hauptschleife nur ein rein theoretischer Spezialfall ist.

Der übliche Normalfall ist eine nicht leere Hauptschleife, die durch 
Interrupts unterbrochen wird.

Der Witz eines Interrupts ist nämlich, daß er höher priorisiert als die 
Hauptschleife ist

Wenn also die Hauptschleife leer ist, geht der Nutzen eines Interrupts 
verloren.


Peter

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Super Tutorial - mach weiter so!!!!!!

Ich hab' mir C für Mikrocontroller gekauft und fast nix verstanden, aber 
dein Tut ist recht einstiegerfreundlich und übersichtlich - Danke!!!

mfg

Christian

Autor: Christian Schifferle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Peter

Du hast grundsätzlich Recht. Der Controller kann natürlich statt dumm 
auf den nächsten Interrupt zu warten auch irgendwelche nicht 
zeitkritische Aktionen ausführen.
Es ging mir in dieser Abbildung aber in erster Linie um die Ausnutzung 
der Interruptfunktionalität als Programmstrukturierungsmöglichkeit 
(geiles Wort).

Ich bin aber immer wieder dankbar für Hinweise aus eurer Sicht, da ich 
beileibe auch nicht perfekt bin ;-)

Kann ich eigentlich nicht auch den Controller in den Schlafmodus 
versetzen und beim nächsten Interrupt aufwecken lassen (Strom sparen)?

Gruss
Christian

Autor: Christian Schifferle (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Es geht weiter.

Im diesem Teil geht es um die Kommunikation mit dem UART.
Damit haben wir dann auch gleich ein Hilfsmittel zur Hand, um 
Textausgaben zu Debugzwecken an den PC zu schicken.

Das ZIP-File enthält den vollständigen Dokumentsatz, also auch den 
vorangegangenen Teil.

Ich hoffe, ihr seid noch nicht Müde, ich bin nämlich schon am nächsten 
Teil.

Gruss
Christian

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://www.mikrocontroller.net/articles/c3/

Wozu sollen die Hover-Buttons denn gut sein? Normale Links tun's doch 
auch.

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
Sehr gutes Tutorial ;=))
Nur leider kann ich die Übungen weder mit dem IE6 noch dem Netscape 7 
anzeigen. Liegt es am "Ü"?

Bis denne
Jens

Autor: Christian Schifferle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Glaube ich eigentlich nicht. Du kannst aber ansonsten auch die 
entsprechenden HTML-Dateien direkt öffnen mit Doppelklick. Sie heissen 
jeweils Übung_x.htm.

Gruss
Christian

Autor: Schmittchen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die _Ü_bungen funktionieren hier mit IE5.5 auch nicht. Weder per Link, 
noch direkt. Ich kriege aber auch eine Fehlermeldung "java...: 
fhover..." (an mehr kann ich mich nicht mehr erinnern, da die 
Fehlermeldung nur beim 1.Mal erschien).

Schmittchen.

Autor: Christian Schifferle (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Probiert doch mal, ob es mit dieser Datei geht.

Gruss
Christian

Autor: Schmittchen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, das geht. Ich habe fast den Verdacht, daß es die Datei Übung_1.htm 
auf http://www.mikrocontroller.net/articles/c3/Übung_1.htm garnicht 
gibt? Kann das sein?

Schmittchen.

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das "Ü" war schuld (Umlaute in URLs machen immer irgendwelche Probleme 
und sollten deshalb vermieden werden). Ist aber jetzt repariert.

Autor: Christian Schifferle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Somit kann ich die Hover-Schaltflächen eigentlich drin lassen.
Die Dateinamen werde ich entsprechend umbenennen.

Christian

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wozu sollen die Hover-Schaltflächen denn überhaupt gut sein? Das 
Anzeigen der Seite dauert deutlich länger wenn immer noch die JVM 
gestartet werden muss.

Autor: BAB (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
da scheint noch immer ein bug zu sein..bei mir gehts immer noch 
nicht...mhhh....

Autor: Christian Schifferle (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Wollt ihr noch???????
Dann kriegt ihr noch!!

Habe die Hoverschaltflächen ersetzt durch normale Bildchen und alle 
Umlaute aus den Dateinamen entfernt.
Das müsste jetzt eigentlich so gehen.

Ach ja, und selbstverständlich ist ein neues Thema dazu gekommen. 
Diesmal geht es um die Verarbeitung von Analogwerten.
Viel Spass beim Ausprobieren.

Christian

Autor: Diminator (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

sorry das ich mich lange nicht Melden konnte

Bin gerade an deiner Datei sieht ja echt genial aus. Hast du was dagegen 
wen ich es auf meine Seite stellen würde?

DANKE nochmal

CU Diminator

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christian, ich würde es ja gern wieder in den Artikel-Bereich hochladen, 
aber einige Links deines Artikels funktionieren nicht. Tipp: 
Unix-Webserver sind case sensitive, das heißt du musst bei den Links und 
den Dateinamen auf Groß-/Kleinschreibung achten. Und ein paar Dateien 
und Ordner mit Umlauten sind auch noch dabei habe ich gesehen.

Gruß
Andreas

Autor: Christian Schifferle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Diminator
Wie du auf der Einleitungsseite lesen kannst darf das Tutorial weiteren 
Personen zugänglich gemacht werden, sofern der Copyright-Hinweis nicht 
verändert wird. Dies betrifft seblstverständlich auch die 
Veröffentlichung auf anderen Webseiten.

@Andreas
Die Dateinamen mit Umlauten kannst du wegschmeissen, sind bloss noch 
Datenleichen.
Bei den Links kannst du mir sicherlich sagen ob der Unix-Server 
eventuell Probleme hat mit Leerzeichen in den Dateinamen. Ich meine, ich 
habe die Links immer mit der Auswahlbox des Fileselectors eingefügt, 
dann müsste ja eigentlich die Gross-/Kleinschreibung stimmen.
Nenn mir doch mal ein oder zwei Beispiellinks, welche nicht funzen.

Gruss
Christian

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://www.mikrocontroller.net/articles/c4/ -> "Benötogte Werkzeuge" 
geht nicht. Am besten alle Links und alle Dateinamen kleinschreiben.

Autor: Christian Schifferle (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
@Andreas

Neue Inhaltsverzeichnis.htm

Gruss
Christian

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK, ist hochgeladen.

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Christian Schifferle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Andreas

Den Teil 2 kannst du bei den Artikeln eigentlich auch weglassen, da der 
Teil 3 das komplette Tutorial beinhaltet. Ich erweitere jedes mal 
einfach wieder um ein paar Seiten. Somit ist immer das ganze Tut in 
meinem ZIP vorhanden.

Gruss
Christian

Autor: Diminator (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Ich frag mal Vorsichtig :

machst du noch weiter?


DANKE

Autor: Christian Schifferle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Freunde

Das Tutorial wird selbstverständlich weiter geführt. Allerdings bin ich 
momentan gerade mit einem Projekt beschäftigt. Ich baue mir eine 
Lichtsteuereinheit mit 8 Scheinwerfern, die über die MIDI-Schnittstelle 
eines Keyboards angesteuert wird. Bin aber schon fast fertig. Dann 
geht's weiter mit dem Tut.

Besten Dank für eure Geduld.
Ich hoffe, es ist immer noch Interesse vorhanden.

Gruss
Christian

Autor: Markus Burrer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
das Tutorial sieht schon verdamt gut aus (der Button "zum Kurs" in der 
Einleitung geht nicht und ein paar Bilder fehlen).
Das setzt aber voraus, das man einen Compiler installiert hat, das man 
den Sinn und den Inhalt der Makefiles versteht und das man die Vorgänge 
zumindest ungefähr versteht, die bei der Compilierung ablaufen. Die 
Optionen von Compiler, Linker, Assember usw sind auch nicht jedem 
bekannt. Gibt es dazu schon brauchbare (deutsche) Tutorials? Ich kenn 
mich leider damit nicht aus um sowas selbst zu schreiben.

Gruß
Markus

Autor: Markus Burrer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach ja, und was z.B. "elf" und "cof" bedeutet. Das ist für mich bisher 
noch ein Buch mit sieben Siegeln, weil ich mit jeglicher Art von GCC 
Compilern noch keine Erfahrung hab.

Gruß
Markus

Autor: Christian Schifferle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Markus
Soll ich dir mal was verraten?
Ich habe auch keine Ahnung, was die ELF und COF-Dateien bewirken, aber 
es ist mir ziemlich schnurz. Hauptsache, ich kriege ein ROM-File, 
welches ich auf den AVR laden kann :-)
Das mache ich übrigens mit Pony Prog.

Bezüglich Entwicklungsumgebung habe ich mich an das gehalten, was ich im 
Netz so gefunden habe. Leider praktisch alles in Englisch. Nicht zuletzt 
deswegen habe ich mich dazu entschlossen, dieses Tutorial zu schreiben, 
damit auch mal was in (Schweizer-)Deutsch vorhanden ist.

Der Aufbau der Makefiles ist, denke ich, in den ersten Beispiellösungen 
ausführlich dokumentiert, und wenn du mal ein braubares Makefile hast, 
kannst du dieses für neue Projekte kopieren und anpassen.

Die Installation des Compilers habe ich nach der Anleitung auf dieser 
Homepage durchgeführt. Hat eigentlich auch auf Anhieb geklappt.

Den Link des Buttons "Zum Kurs" werde ich in der nächsten Version 
flicken. Da ist doch tatsächlich noch ein Klein-/Grossschreibung-Problem 
versteckt.

Gruss
Christian

Autor: Christian Schifferle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bin gerade dabei, den nächsten Teil des Tuts fertig zu stellen.
Mir fehlt jetzt ein praxisnahes Beispiel als Übung für die Anwendung des 
16-Bit Timer/Counter.
Irgend welche Ideen???? Mit fällt gerade nichts schlaues ein, und eine 
Null Acht Fuffzehn Übung möchte ich auch nicht unbedingt machen. Das 
ganze soll natürlich noch mit einfachen Mittel aufzubauen sein, also 
keine speziellen IC's und dergleichen.

Gruss
Christian

Autor: BAB (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nur so ne idee...vielleicht ist es auch schon drin..habs nur mal ein 
wenig überflogen...

vielleicht solltest du mal ein wenig mehr auf das bit geklimper 
eingehen...schieben, XOR, AND, OR usw.
zumindest hatte ich da meine schwierigkeiten am anfang mit.

oder spezielle sachen..wie ich z.b direkt auf einen feste sram adresse 
direkt schreiben kann:

unsigned char *ptr
ptr = (unsigned char *) 0x0060;

das sind so dinge die mir am amfang etwas kopf zerbrechen gemacht 
haben...

gruss,

BAB

Autor: Markus Burrer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Christian: wie wäre es mit einer Geschwindigkeitsmessung? Zwei 
Sensoren wie zb Lichtschranken in einem festen Abstand von zb 10cm. Der 
erste Sensor startet den Meßvorgang, der zweite stoppt ihn.
Und als Counter könnte man einen Impulssensor an einem Rad nehmen. So 
könnte z.B. ein 8Bit Conter die Zahl der Impulse zählen und der 16 Bit 
Counter wird bei jeder vollen Umdrehung durch einen Sync-Eingan neu 
gestartet. Der 16Bit Timer mißt die Zeit pro Umdrehung. So könnte man 
neben der Drehzahl auch die Position ermitteln.

Gruß
Markus

Autor: Zoltan (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Christian,

ich möchte mich als erstes für Dein super Tutorial bedanken. Ich habe 
erst vor einem Monat mit AVR-s und mit dem programmieren angefangen, und 
der Anfang  währe ohne dieses Tutorial 1000 Mal schwiereiger gewesen.

Ich würde gerne dieses Programm hier als Beispielanwendung für den 
16-Bit Timer/Counter vorschlagen. Das Programm misst die Pulslänge von 
R/C Empfängern (mit dem 16-bit Timer), speichert den Wert und gibt 
wieder den selben Puls, wiederum mit Hilfe des  16-Bit Timers aus.


Gruß
Zoltan

Autor: Christian Schifferle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Besten Dank für eure Ideen.
Ich werde diese Anregungen gerne entgegen nehmen für ein Kapitel 
"Praxisbeispiele" zum krönenden Abschluss des Tutorials.
Für die Übungen zum Thema suche ich aber wirklich überschaubare 
Anwendungen, welche mit den Bauteilen, die eigentlich jeder in der 
Schublade hat (LED, Taster, Transis, Kondensatoren etc.) zu realisieren 
ist. Für den 8-Bit Timer habe ich z.B. eine Software-PWM mit 4 Kanälen 
gebastelt, welche einfach 4 LED's ansteuert. Das ganze sollte übrigens 
bisher noch ohne Interrupts auskommen, weil die Interrupts erst später 
im Kurs besprochen werden.

Gruss
Christian

Autor: Christian Schifferle (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Was lange währt...

Hallo an Alle

Es hat lange gedauert bis ich wieder soweit war.
Jetzt ist es aber soweit, rechtzeitig zum Jahresende.
Ich wünsche euch allen viel Spass beim Experimentieren und ein 
erfolgreiches 2003.
Ich hoffe, ich habe alle erforderlichen Dateien in das beiliegende 
ZIP-File gepackt.

Mit kollegialem Gruss
Christian

Autor: Zoltan (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe aus versehen oben (zwei Beiträge früher) den falschen File 
(servo6) gepostet. Ist mir grad aufgefallen! Hier kommt der richtige. 
Sorry.

Autor: Michel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Christian, SUPER tutorial. mach weiter so :)

Autor: Christian Schifferle (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Gong zur nächsten Runde, wenn es euch noch nicht verleidet ist.

Ich habe einige Links korrigiert und einen direkten Download der 
ZIP-Datei von meiner Homepage integeriert, da ich viele Mails mit 
entsprechenden Anfragen erhalten habe.

Viel Spass
Christian

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab's wieder hochgeladen:
http://www.mikrocontroller.net/articles/c/

Vielleicht solltst du dein Tutorial auf die neueste Version von AVR-GCC 
updaten? Es hat sich einiges geändert, z.B. der Portzugriff und die 
Positionen mancher Header-Dateien (avr/io.h statt io.h).

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast Du inzwischen ein Beispiel für den 16-bit T/C gefunden?  Ansonsten
schau mal in die offiziellen Beispiele der avr-libc (siehe
http://savannah.nongnu.org/projects/avr-libc ), das simple Demo dort
benutzt einen solchen Timer für einen PWM, mit dem eine LED an- und
abschwillt.

Autor: Christian Schifferle (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Seid ihr noch alle da?

Ich habe das Tutorial jetzt zu Ende gebracht.
Speziell dazu gekommen ist jetzt noch das Thema Interrupts.

Ich hoffe, es hat euch Spass gemacht, dieses Tutorial durchzuackern.

Viel Spass nun noch beim Programmieren
Christian

Autor: Christian Schifferle (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Nachdem ich etliche Anfragen erhalten habe, ob es das Tutorial auch in 
druckbarer Form gibt habe ich jetzt das Ganze in eine Word-Datei 
verpackt.
Ihr könnt das Dokument so wie es ist ausdrucken oder dasselbe vorher 
noch ein wenig nachformatieren, insbesondere die Seitenumbrüche 
innerhalb von Tabellen sind nicht immer optimal.

Gruss
Christian

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PDF wäre nicht schlecht, ich glaube nicht dass jeder Word hat. Und 
vielleicht sollte man das Tutorial für die neue Version von AVR-GCC 
anpassen oder zumindest darauf hinweisen welche Unterschiede zu beachten 
sind.

Gruß
Andreas

Autor: MiCHEL (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
yup Update & PDF wär nicht schlecht. danke christian

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.