Forum: Compiler & IDEs C Anfänger Tutorial AVR


von Christian Schifferle (Gast)


Angehängte Dateien:

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

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Ich hab's auch mal zu den Artikeln hochgeladen, ok?

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

von Christian Schifferle (Gast)


Lesenswert?

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

Gruss
Christian

von Peter D. (peda)


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

von Christian (Gast)


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

von Christian Schifferle (Gast)


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

von Christian Schifferle (Gast)


Angehängte Dateien:

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

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

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

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

von Jens (Gast)


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

von Christian Schifferle (Gast)


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

von Schmittchen (Gast)


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.

von Christian Schifferle (Gast)


Angehängte Dateien:

Lesenswert?

Probiert doch mal, ob es mit dieser Datei geht.

Gruss
Christian

von Schmittchen (Gast)


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.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

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

von Christian Schifferle (Gast)


Lesenswert?

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

Christian

von Andreas S. (andreas) (Admin) Benutzerseite


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.

von BAB (Gast)


Lesenswert?

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

von Christian Schifferle (Gast)


Angehängte Dateien:

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

von Diminator (Gast)


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

von Andreas S. (andreas) (Admin) Benutzerseite


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

von Christian Schifferle (Gast)


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

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

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

von Christian Schifferle (Gast)


Angehängte Dateien:

Lesenswert?

@Andreas

Neue Inhaltsverzeichnis.htm

Gruss
Christian

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

OK, ist hochgeladen.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?


von Christian Schifferle (Gast)


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

von Diminator (Gast)


Lesenswert?

Hi

Ich frag mal Vorsichtig :

machst du noch weiter?


DANKE

von Christian Schifferle (Gast)


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

von Markus Burrer (Gast)


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

von Markus Burrer (Gast)


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

von Christian Schifferle (Gast)


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

von Christian Schifferle (Gast)


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

von BAB (Gast)


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

von Markus Burrer (Gast)


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

von Zoltan (Gast)


Angehängte Dateien:

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

von Christian Schifferle (Gast)


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

von Christian Schifferle (Gast)


Angehängte Dateien:

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

von Zoltan (Gast)


Angehängte Dateien:

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.

von Michel (Gast)


Lesenswert?

Hallo Christian, SUPER tutorial. mach weiter so :)

von Christian Schifferle (Gast)


Angehängte Dateien:

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

von Andreas S. (andreas) (Admin) Benutzerseite


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).

von Joerg Wunsch (Gast)


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.

von Christian Schifferle (Gast)


Angehängte Dateien:

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

von Christian Schifferle (Gast)


Angehängte Dateien:

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

von Andreas S. (andreas) (Admin) Benutzerseite


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

von MiCHEL (Gast)


Lesenswert?

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

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
Noch kein Account? Hier anmelden.