Forum: Mikrocontroller und Digitale Elektronik AVR-Tutorial auch mit ATmega8A oder ATmega88 verwendbar?


von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

Hallo!

Der ATmega8 ist ja schon seit ein paar Jahren überholt und als solches 
"Museumsstück" meistens sogar teurer als seine Nachfolger.

Hat irgendwer schon mal das AVR-Tutorial mit der neuesten Version, also 
dem ATmega88, durchgespielt?

: Verschoben durch Moderator
von Klaus W. (mfgkw)


Lesenswert?

Das geht natürlich.

Man kann das Tutorial mit allen atmega verwenden. Allerdings muß man 
(sowieso) das Datenblatt zum verwendeten Prozessor in der Hand haben, da 
sich natürlich mal Pinbelegungen, Registerbezeichnungen tec. 
unterscheiden.

Mit etwas Mitdenken geht es also.

Wobei atmega8 und atmega8a als ziemlich gleich durchgehen, was aber auch 
nicht vor dem Datenblatt bewahrt.

von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

Klaus Wachtler schrieb:
> Man kann das Tutorial mit allen atmega verwenden. Allerdings muß man
> (sowieso) das Datenblatt zum verwendeten Prozessor in der Hand haben, da
> sich natürlich mal Pinbelegungen, Registerbezeichnungen tec.
> unterscheiden.

Ja, das ist es eben. Man kann das Tutorial auch mit dem ATmega1284 
durcharbeiten, aber der Sinn dieses Tutorials ist ja, dass es ein 
Anfänger durcharbeiten können soll, ohne immer wieder ins Datenblatt zu 
schauen.

Meine Frage muss ich dann wohl umformulieren:
Kann man das Tutorial auch mit einem ATmega88 nutzen, ohne im Datenblatt 
immer wieder prüfen zu müssen, ob sich an den Registern etwas geändert 
hat?

von Klaus W. (mfgkw)


Lesenswert?

Kann man.
Ist aber nicht empfehlenswert. Das Tutorial würde dann nur dazu führen, 
daß man das Datenblatt nicht sieht. Sinnvoller wäre es, alles aus dem 
Tutorial im Datenblatt wieder zu finden - dann lernt man nämlich mehr 
als nur abzukupfern.

8 und 8A sind in der Praxis praktisch gleich, 88 ist sehr ähnlich 
(hauptsächlich bei Interrupts etwas anders).

Wer will, kann also erstmal ohne DB anfangen und bei Problemen sich auf 
die Suche machen.

von Michael H. (michael_h45)


Lesenswert?

Markus W. schrieb:
> aber der Sinn dieses Tutorials ist ja, dass es ein
> Anfänger durcharbeiten können soll, ohne immer wieder ins Datenblatt zu
> schauen.
Nein, das ist es nicht!
Die Register werden beschrieben und auf ihre Funktion eingegangen. Wie 
das ganze aber mit dem Bausteil zusammen ins Bild kommt, lässt sich nur 
zusammen mit dem Datenblatt verstehen.

Wer nur vom Tutorial abschreibt, ohne zu verstehen, was vor sich geht, 
wird nie ohne ein Tutorial auskommen. Das ist nicht Sinn der Sache.

Markus W. schrieb:
> Kann man das Tutorial auch mit einem ATmega88 nutzen, ohne im Datenblatt
> immer wieder prüfen zu müssen, ob sich an den Registern etwas geändert
> hat?
Nein.
Denn natürlich hat sich einiges geändert. Bits sitzen in anderen 
Registern, neue Funktionen brauchen neue Bits, die auch korrekt gesetzt 
werden sollen.

von Bastler (Gast)


Lesenswert?

Hallo,

meiner Meinung nach wär eine Mischung der beiden Ideen optimal. Also 
erst einmal ein fest vorgegebener Weg für einen ganz bestimmten AVR so 
das der Anfänger schnell ein fertiges Zwischenergebniss bekommt.
Danach aber die genaue und anfängertaugliche (daran scheitert es oft - 
nicht alles ist für einen Anfänger selbstverständlich) Erklärung warum 
so und nicht anders vorgegangen wurde und wie das vorgegebene Beispiel 
auf einen anderen AVR angepasst werden muss (mit einen Schritt für 
Schritt Beispiel anhand der beiden Datenblätter), so lernt man wie ein 
Programm in der Praxis angepasst wird (bitte nicht irgendwelche 
"selbstverständlichen" Kleinigkeiten übersehen - für einen totalen 
Anfänger ist das nicht unbedingt der Fall).

Ja ich weis, so ein Tutorial (Lehrgang) ist alles andere als einfach zu 
Schreiben, ich kann dass leider auch nicht wirklich.
Wäre doch ein schönes Wiki Projekt.

Ein Beispiel wie ich mir einen gutes Tutorial vorstelle ist z.B.
http://halvar.at/elektronik/kleiner_bascom_avr_kurs/
dort wird wirklich alles Anfängertauglich dargestellt leider aber in 
Bascom und es wurde zu früh aufgehört, es gibt ja noch viel mehr 
Möglichkeiten mit einen AVR µC.

mfg
    Bastler

von Karl H. (kbuchegg)


Lesenswert?

Bastler schrieb:

> das der Anfänger schnell ein fertiges Zwischenergebniss bekommt.
> Danach aber die genaue und anfängertaugliche (daran scheitert es oft -
> nicht alles ist für einen Anfänger selbstverständlich) Erklärung warum
> so und nicht anders vorgegangen wurde und wie das vorgegebene Beispiel
> auf einen anderen AVR angepasst werden muss (mit einen Schritt für
> Schritt Beispiel anhand der beiden Datenblätter), so lernt man wie ein
> Programm in der Praxis angepasst wird (bitte nicht irgendwelche
> "selbstverständlichen" Kleinigkeiten übersehen - für einen totalen
> Anfänger ist das nicht unbedingt der Fall).

Das ist eigentlich eine gute Idee für ein 'hinteres Kapitel' im 
Tutorial.
Titel: "Hilfe, ich benutz ja gar keinen Mega8! Wie kann ich trotzdem 
Nutzen aus dem Tutorial ziehen?"

> Ein Beispiel wie ich mir einen gutes Tutorial vorstelle ist z.B.
> http://halvar.at/elektronik/kleiner_bascom_avr_kurs/
> dort wird wirklich alles Anfängertauglich dargestellt leider aber in
> Bascom und es wurde zu früh aufgehört, es gibt ja noch viel mehr
> Möglichkeiten mit einen AVR µC.

Das ist das leidige Problem fast aller Tutorien. Der Autor fängt voller 
Enthusiasmus an und irgendwann merkt er, dass man vom Hundersten ins 
Tausendste gehen muss, um auch wirklich alles so aufzubereiten, dass es 
jeder versteht, selbst wenn er noch nie mit der Materie zu tun hatte. 
Auf der anderen Seite darf man aber auch nicht ins Gegenteil verfallen 
und den Leser mit zuviel Detailinformation überfrachten, vor allen 
Dingen, wenn er diese Details an dieser Stelle noch gar nicht benötigt 
und daher auch nicht einordnen kann. Das verwirrte dann eher als es ihm 
nützt. Alles in allem eine Gratwanderung, in die viel Zeit reinfliesst. 
Und irgendwann schläft die Sache dann ein.
Das ist nicht nur bei diesem Tutorial so, sondern bei den vielen anderen 
Programmiersprachen-Tutorien. Drum halte ich zb von Online-Tutorien 
nicht viel, sofern es im Buchhandel genügend Literatur zum jeweiligen 
Thema gibt. Zb. kann man die meisten C-Tutorien, die ich bisher gesehen 
habe (es gibt auch Ausnahmen), guten Gewissens ruhig vergessen. Genau 
das gleiche Problem: Nicht vollständig, oft fehlen tatsächlich 
wesentliche Details und manchmal sind sie sogar einfach nur falsch.


Aber danke für die Idee. Mal sehen, ob ich da was draus machen kann.

von Hannes L. (hannes)


Lesenswert?

Markus W. schrieb:
> Der ATmega8 ist ja schon seit ein paar Jahren überholt und als solches
> "Museumsstück" meistens sogar teurer als seine Nachfolger.
>
> Hat irgendwer schon mal das AVR-Tutorial mit der neuesten Version, also
> dem ATmega88, durchgespielt?

Das Tutorial wurde ursürünglich für den AT90S4433 geschrieben. Der ist 
nun wirklich überholt. Es war anfangs auch recht klein. Dann wurde es so 
nach und nach ergänzt und nebenher für den ATMega8 abgeändert. Einige 
Dinge der Classic-AVRs haben sich dabei tapfer gehalten, z.B. der 
Irrglaube, dass man unbedingt mit 4 MHz arbeiten müsse oder dass am 
Reset ein RC-Glied sein müsse.

Das Tutorial jetzt auf einen der moderneren AVRs umzuschreiben ist eine 
Menge Arbeit und ist eigentlich niemandem zuzumuten. Den ATMega8A habe 
ich mir noch nicht angesehen, aber der ATMega48/88/168 hat einen völlig 
neu organisierten I/O-Bereich, viele I/O-Register liegen an anderen 
Adressen, teilweise sind andere Zugriffsbefehle nötig, da der neue 
Extended-I/O-Adressbereich nicht mehr mit In/Out angesprochen werden 
kann, sondern wie SRAM angesprochen werden muss. Dazu kommt auch noch, 
dass die interne Peripherie weiterentwickelt wurde, Timer haben neue 
Funktionen, der ADC andere Referenzspannung, ... Da hilft wirklich nur 
der Blick ins Datenblatt.

Markus W. schrieb:
> aber der Sinn dieses Tutorials ist ja, dass es ein
> Anfänger durcharbeiten können soll, ohne immer wieder ins Datenblatt zu
> schauen.

Aha, Copy&Paste bei deaktiviertem Gehirn... - Nein, das ist nicht Sinn 
der Sache! Sinn der Sache ist es, bei den ersten Schritten geführt zu 
werden, die ersten Fallstricke zu umgehen und das eigenständige Denken 
in diesem Fachgebiet zu erlernen.

Markus W. schrieb:
> Der ATmega8 ist ja schon seit ein paar Jahren überholt und als solches
> "Museumsstück" meistens sogar teurer als seine Nachfolger.

Vorschlag:
Da Dir der ATMega8 zu teuer ist, sponsere ich Dir einen ATMega8.
Als Gegenleistung arbeitest Du damit das Tutorial durch.
Immer wenn Du ein Feature verstanden hast, arbeitest Du es nochmal mit 
dem billigen ATMega88 durch und schreibst das entsprechende Kapitel des 
Tutorials auf den ATMega88 um, z.B. als Wiki-Artikel. Wenn Du mit allen 
Kapiteln fertig bist, kannst Du AVRs programmieren. Vielleicht übernimmt 
Andreas dann auch Dein neues Tutorial oder bindet es zumindest 
zusätzlich ein. Das wäre doch mal etwas produktiver, als immer nur von 
Anderen zu erwarten, dass sie immer alles mundgerecht servieren.

...

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Hannes Lux schrieb:
> Den ATMega8A habe
> ich mir noch nicht angesehen

Den sollte man bedenkenlos anstelle des ATmega8 einsetzen können,
denn genau das ist ja der Sinn der A-Versionen.

von Hannes L. (hannes)


Lesenswert?

Jörg Wunsch schrieb:
> Den sollte man bedenkenlos anstelle des ATmega8 einsetzen können,
> denn genau das ist ja der Sinn der A-Versionen.

Das denke (vermute) ich auch, aber ich habe noch keine ATMega8A gekauft 
und auch keinen Bedarf dafür gesehen, also bestand keine Notwendigkeit, 
Datenblatt und Mig-Note zu lesen. Die meisten Dinge, für die ich in 
letzter Zeit einen AVR mit 28 Pins brauchte, konnte ich mit dem Mega48 
erschlagen. Naja, außer dem OSD für ATV (LM1881 und ATMega8), aber das 
war ein Einzelstück, da gibt es in meinem Umfeld vermutlich kein 
weiteres Interesse.

Beim ATTiny13 bin ich auf die A-Version umgestiegen, da gibt es keine 
Probleme mit dem Austausch. Meine ATTiny13-Programme laufen ohne 
Änderung auch auf dem ATTiny13A.

...

von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

Hannes Lux schrieb:
> Einige
> Dinge der Classic-AVRs haben sich dabei tapfer gehalten, z.B. der
> Irrglaube, dass man unbedingt mit 4 MHz arbeiten müsse oder dass am
> Reset ein RC-Glied sein müsse.

Ich habs meist aus Faulheit weggelassen, wusste gar nicht, dass das 
grundsätzlich nicht mehr notwendig ist. Danke für die Info!

> Markus W. schrieb:
>> aber der Sinn dieses Tutorials ist ja, dass es ein
>> Anfänger durcharbeiten können soll, ohne immer wieder ins Datenblatt zu
>> schauen.
>
> Aha, Copy&Paste bei deaktiviertem Gehirn... - Nein, das ist nicht Sinn
> der Sache! Sinn der Sache ist es, bei den ersten Schritten geführt zu
> werden, die ersten Fallstricke zu umgehen und das eigenständige Denken
> in diesem Fachgebiet zu erlernen.

Nein, so war das nicht gemeint. Ich denke, für einen blutigen Anfänger 
ist es am besten, wenn er erst einmal ein Erfolgserlebnis hat, ohne sich 
um zu viele Details kümmern zu müssen. Und sei es, dass einfach mal eine 
LED blinkt - das reicht schon. Wenn er tiefer einsteigt und sich z.B. 
mit Interrupt-Routinen befasst, dann sollte auch das Tutorial 
gelegentlich aufs Datenblatt verweisen.

> Markus W. schrieb:
>> Der ATmega8 ist ja schon seit ein paar Jahren überholt und als solches
>> "Museumsstück" meistens sogar teurer als seine Nachfolger.
> Vorschlag:
> Da Dir der ATMega8 zu teuer ist, sponsere ich Dir einen ATMega8.

Danke. :-) Aber mir ging es eher um die Verfügbarkeit und den Sinn, 
einen Chip zu kaufen, der weniger kann als seine Nachfolger, dafür aber 
teurer ist.

> Als Gegenleistung arbeitest Du damit das Tutorial durch.
> Immer wenn Du ein Feature verstanden hast, arbeitest Du es nochmal mit
> dem billigen ATMega88 durch und schreibst das entsprechende Kapitel des
> Tutorials auf den ATMega88 um, z.B. als Wiki-Artikel. Wenn Du mit allen
> Kapiteln fertig bist, kannst Du AVRs programmieren. Vielleicht übernimmt
> Andreas dann auch Dein neues Tutorial oder bindet es zumindest
> zusätzlich ein. Das wäre doch mal etwas produktiver, als immer nur von
> Anderen zu erwarten, dass sie immer alles mundgerecht servieren.

Ich glaub, da haben wir uns falsch verstanden. Mir gings nicht darum, 
das Tutorial nun komplett auf einen anderen Typ umzustellen.


Das AVR-Assembler-Tutorial hier auf mikrocontroller.net ist seeehr gut!
-----------------------------------------------------------------------

Sinnvoll wäre es aus meiner Sicht trotzdem, an allen Stellen, an denen 
man für den ATmega88 etwas anderes schreiben müsste, einen 
entsprechenden Hinweis einzufügen. Den Rest des Tutorials würde ich 
lassen. Damit wäre es für alte und neue Bausteine verwendbar.

von JojoS (Gast)


Lesenswert?

Atmel hat auch viele Apnotes die die Migration von Prozessoren auf deren 
Nachfolger beschreiben. Zumindest einen Link dahin könnte man einfügen.
Aber auch der GCC und die Libs wurden weiterentwickelt, meine Erfahrung 
ist das nach jedem WinAVR Update alte Quellen nicht mehr fehlerfrei 
kompilieren. Da ist einfach etwas Phantasie gefragt.

von Hannes L. (hannes)


Lesenswert?

JojoS schrieb:
> Aber auch der GCC und die Libs wurden weiterentwickelt,

Ich vermute, es geht hier nicht um C, sondern um das ASM-Tutorial.

Markus W. schrieb:
> Ich glaub, da haben wir uns falsch verstanden.

Das freut mich.

> Mir gings nicht darum,
> das Tutorial nun komplett auf einen anderen Typ umzustellen.

Das ist auch nicht mal so nebenbei möglich. Ich denke aber, Karl-Heinz 
wird da schon die richtige Stelle für einen passenden Hinweis finden.

Du kannst ja auch mal quer lesen, auch wenn Du nicht mit Bascom arbeiten 
willst: http://www.rowalt.de/mc/avr/AvrbuchOnline/AvrLehrbuch000.htm
Da wirst Du sehen, dass auch der Autor eines AVR-Basic-Buches immer 
wieder auf das Datenblatt verweist... ;-))

...

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.