PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ATmega8 der ATmega 16 | 4Mhz oder 16Mhz | C oder Assembler



Umaus
03.04.2004, 21:51
Hallo zusammen!

Ich bin ganz neu in diesem Gebiet und habe mir die letzten drei Tage so einiges durchgelesen, unter anderem auch das AVR-Tutorial auf www.mikrocontroller.net.

Ich mache eine schulische Ausbildung zum IT-Assistent und wir fangen in der Schule jetzt auch mit C-Programmierung an (bis jetzt hatten wir Turbo Pascal Programmiert). Programmieren ist mein lieblingsfach und da bin ich laut Zeugnis auch sehr gut drin :-)
Im Tutorial von mikrocontroller.net wurden ein paar Grundlagen von Assembler erklärt und ich finde, dass man das man sich die Begriffe zwar nicht gut merken kann, muss also wohl oft nachschlagen, was wie hieß etc. aber die Struktur und Funktionsweise von Assembler ist doch sehr gut zu verstehen. Zudem weiß man genau was der Controller da macht.
Nun meine erste Frage, sollte ich wirklich gleich mit Assembler anfangen, oder doch erst mit C; wie sieht es aus, wenn ich z.B. etwas aufwendigere Programme schreiben möchte, ist der schwirigkeitsgrad dann wesendlich höher. Ich saß auf jeden Fall heute die ganze Zeit an dem Tutorial und ich hatte keine Langeweile am lesen bekommen, weil man die Funktionsweise des Controllers nachvollziehen konnte und es doch recht interessant war.

Dann noch:
Ich möchte mir den atmega-µC kaufen. Mit dem möchte ich dann alle meine Projekte testen und wenn ein Projekt erfolgreich ist, einen atmega-µC kaufen, der gerade groß genug für das Projekt ist.
Hab mir mal so folgende Prjekte vorgestellt:
1. Spielereien mit Taster und LEDs
1b. LEDs mit Hyperterminal (PC) an und aus schalten.
2. Spielereien mit einem LCD-Display
(z.B. bei getrücktem Taster1 = "Hallo", Taster2 = "Tschüss")
3. einen Ultraschall-Entfernungsmesser mit Parabolantenne
4. Nr.3 jedoch mit Schrittmotor, wobei z.B. jeweils nach zwei Schritten
gemessen wird, ob oder wie weit ein Objekt vor dem Sensor steht.
Das Ergebnis bei Nr.3 und Nr.4 soll gespeichert und später
auf dem Computer übertragen werden.
5. Ein "Roboter" welcher vorprogrammierte Strecken fährt.
6. Nr. 4 und Nr. 5 kombiniert.
7. Nr. 6 aber mit Ausweichmanöver (ohne vorprogrammierte Strecke)
8. Nr. 7 mit Display
usw.

Meine Frage - würde der ATmega8 und ein 4Mhz Quarzoszillator auf für aufwendigere Projekte reichen, oder soll einen ATmega16 / ATmega32 und oder eine höhere Taktfrequenz wählen (letzteres kostet zudem ja nichts mehr)?

Würde mich sehr auf Antworten freuen!

Gruß! Umaus

martin
03.04.2004, 22:27
Hallo,

ich würde mal sagen, je höher die Taktfrequenz, umso besser.
Vor allem bei späteren Erweiterungen. Zuviel MHz haben noch nie geschadet, ist meine Erfahrung. Falls du EMV-Technisch klarkommst, sollte das kein Problem sein. Ich würde mindestens mit 8 oder mehr MHz anfangen, alles andere stösst schnell auf seine Grenzen. (Hätte ich früher auch nicht gedacht.)

Ciao, Martin

Umaus
03.04.2004, 22:28
Ich hab mir mal ein paar Preise ausgeguckt:
Bei www.mikrocontroller.net:
ATmega8 --> 4,27 Euro
ATmega16 --> 7,20 Euro

Conrad.de
ATmega8 --> 9,46 Euro
ATmega32 --> 23,10 Euro
ATmega64 --> 26,40 Euro
ATmega128--> 30,58 Euro

Quarzoszillator für 5,09 Euro
Ausführung mit 1, 2, 2.4576, 4, 8, 10, 12 Mhz erhältlich
16 Mhz leider nicht, danach folg 20 Mhz hoch bis 100 Mhz...

Umaus
03.04.2004, 22:35
@ Martin: Danke... das ist gut :-)

dann noch, ich bin die kommende Woche in Berlin und komme somit wahrscheinlich auch nach Conrad... sind die Preise dort bei Kleinstelektronik günstiger oder gleich?

Gottfreak
03.04.2004, 23:54
Zu deiner ersten Frage: Assembler ist vielleicht gerade zum Anfangen ganz gut, weil du damit am besten verstehst, was dein µC macht. Bei wachsender Komplexität deiner Projekte (wenn z.B. dein Roboter nicht nur ausweicht sondern sich richtig orientieren soll) ist es aber sicher irgendwann eine unnötige Quälerei, das alles in Assembler zu machen (selbst einfach erscheinende Berechnungen füllen in Assembler schon mal seiten von Code).
Wenn du die Möglichkeit hast, ohne extra Versandkosten deine Teile einzukaufen, kannst du den Oszillator bei den Megas auch erstmal weglassen. Die haben einen bis 8MHZ integriert.
Wenn du schon programmieren kannst, wird den größten Aufwand bei deinen Projekten sicher die Bastelei sein.
PS: Quarzoszillator 1,2,4,8,12,16MHZ und noch'n paar andere Werte für 1,90€ bei Reichelt. Atmega8 < 5€
Bei den meisten µC-Sachen ist Conrad schon ziemlich teuer. Ist vonwegen Versandkosten nur besser, da es da buchstäblich alles gibt.

recycle
04.04.2004, 04:43
PS: Quarzoszillator 1,2,4,8,12,16MHZ und noch'n paar andere Werte für 1,90€ bei Reichelt.



Mhhh. ich habe letze Woche diverse Quarze mit den oben genannten Frequenzen bei Reichelt bestellt.
Z.B. 10-HC18, 16-HC18, 4-HC18,
Die Dinger haben aber nur 44 Cent pro Stück gekostet.
Habe ich da mal wieder Unsinn bestellt, oder ist der Preis von 1,90 schon älter?
Wäre ganz interessant zu wissen bevor ich die Dinger einlöte und dann tagelang verzweifle, dass meine Schaltung nicht funktioniert ;-)

jobee
04.04.2004, 06:52
Hi,

@recycle
Der Preis und die Quarze sind schon ok, obwohl ich lieber die HC49 (0,49€) Ausführung wegen der flacheren Bauform verwende.

@umaus
Als Prozessor nimm gleich den Mega16 oder 32 .
Den externen Quarz gleich vorsehen, aber steckbar auf deiner Testplatine.
So kannst du je nach Programm verschiedene Quarze testen.

Assemblerprogrammierung ist zeitraubender als Bascom, Pascal oder C.
Dafür weisst du was der Code mit der Hardware macht und bleibt klein.
Immer wiederkehrende Routinen fasst du später in sogenannte Macros oder extra Include Dateien, dann hast du noch den Durchblick und der Programmieraufwand bei komplexeren Abläufen ist geringer.
Später kannst du, wie Gottfried schon sagte, auf C wechseln.
Fang also erst mit etwas Assembler an, dann lern C dazu, dort kannst du auch, wie in den anderen Programmiersprachen, Assemblercodes integrieren.

Jörg

Umaus
04.04.2004, 12:30
Oki, dann weiß ich ja jetzt bescheid!

Danke für die Antworten! cya
und einen schönen Sonntag Nachmittag/Abend...

Gottfreak
04.04.2004, 12:48
@Recycle: Hast du dir einzelne Quarze gekauft? Ich meinte fertige Oszilatoren (klar, das die teurer sind).

recycle
09.04.2004, 04:30
@Recycle: Hast du dir einzelne Quarze gekauft? Ich meinte fertige Oszilatoren (klar, das die teurer sind).


Mhh, ja offensichtlich habe ich mir wohl einzelne Quarze gekauft.
Da bin ich selber gerade drüber gestolpert. Habe mir die AVR Grundschaltung auf Mikrocontroller.net angesehen und micht gewundert, warum der Quarzoszilator da 4 Beine hat und meine nur 2 haben ;-)

Damit war meine Vermutung, dass ich mal wieder das Falsche gekauft habe wohl richtig.
Soll ich mich jetzt freuen, dass ich richtig vermutet habe oder ärgern dass ich die falschen Quarze habe? ;-)

Naja, auf der kleinen Platine für den ATMega die ich fertig gekauft habe sind auch einzelne Quarze drauf, irgendwie muss es damit dann ja wohl auch gehen.
Da fehlen mir dann bestimmt nur ein paar Widerstände und Kondensatoren und wenn ich die bestelle, kann ich mir auch gleich die richtigen Quarzoszilatoren mitbestellen ;-)

Kjion
09.04.2004, 09:49
Man kann statt der Quarzoszilatoren auch einfach Quarze benutzten. Man braucht nur noch zwei kleine 22 pF Kondensatoren.
http://www.kreatives-chaos.com/index.php?seite=avrgrund

Also net ärgern, sondern freuen das man Geld gespart hat ;-)
Es gibt natürlich auch Anwendungen bei den Quarzoszilatoren sinnvoller sind. Bei den AVR Schaltungs ist es aber ziemlich egal was man benutzt...

MfG Kjion