Forum: Mikrocontroller und Digitale Elektronik Übungsaufgaben gesucht ...


von Martin B. (methusalem)


Lesenswert?

Nabend zusammen,

ich hab mir ein STK500 gekauft, hab keine (oder mitlerweile sehr wenig)
Ahnung von µC und hab vor 2 Wochen das erste mal was mit Assembler
gemacht.

Nun möchte ich mich nach und nach ein wenig einarbeiten. Ziel ist halt
mein Carreraprojekt
(http://www.mikrocontroller.net/forum/read-1-238552.html#238561). Bis
dahin ist noch ein weiter weg.
Das Tutorial hab ich fast durch (mir fehlen die Bauteie für das Kapitel
4).

Nun ist es ja so, das es Themen gibt, die immer wieder falsch gemacht
werden, oder die wichtig sind und die man verstanden haben sollte. Es
geht also nicht um Programme, die was Sinnvolles tun, sondern darum
alle Bereiche die es bei µC gibt (Timer, Interrupts, usw.)
vorzustellen.

Leider habe ich bisher nur sehr wenige schöne Übungsaufgaben für diesen
Bereich gefunden. Meine Idee ist nun, Aufgaben zu sammeln, die man in
Assembler/C/C++ auf einem µC realisieren muss. Das ganze natürlich von
"ganz einfach" bis "dicker Brocken". Ich wäre bereit diese Aufgaben
zu sammeln und werde mich dann an diesen Aufgaben probieren (Das wird
sicherlich sehr lustig für Euch). Die Musterlösungen könnte man dann
mit den Aufgaben zusammen auf ner kleinen Webseite zusammenfassen, bzw.
den Tutorials hier anhängen.

Was haltet ihr davon? Wer macht mit, und postet mir hier Aufgaben? Aber
denkt daran, ich bin blutiger Anfänger!

--
Martin

von Rahul D. (rahul)


Lesenswert?

Prima Idee.
Vorschlag:
Lauflicht. Erst mit Warteschleife in eine Richtung, dann in beide
Richtungen (Knight-Rider...). Dann das ganze über einen Timer.
Kommunikation über die serielle Schnittstelle.
Dann vielleicht Lauflicht mit Parameter. Entweder über AD-Wandler oder
über die serielle.
Wenn du mit der seriellen arbeitest, könntest du auch eine Stopp-Uhr
mit der Ausgabe am PC realisieren.
Ausgabe auf LCD.
Lauflicht oder Ausgabe über Siebensegment-Anzeige...

Musterlösungen sind gut, aber vermutlich nie eindeutig...

Gute Nacht

Rahul

von Martin B. (methusalem)


Lesenswert?

Moin,

ich bring das Thema noch mal nach oben, weil es mir so am Herzen liegt.
Ich fände es Prima, wenn sich hier noch ein paar von Euch mit Ideen
beteiligen.

> Prima Idee.
Freut mich, das es jemand aufgreift!

> Musterlösungen sind gut, aber vermutlich nie eindeutig...
Schon klar! Aber Sie könnten eine Anregung sein!

--
Martin

von Hannes L. (hannes)


Lesenswert?

Schau dich doch mal in den älteren Beiträgen hier im Forum um. Da gibt
es viele Ideen und auch viele Beispiele, deren Lösung bedeutend
verbessert werden kann. Auf diese Art und Weise kannst du dich
einarbeiten und wirst dich dabei vor neuen, eigenen Ideen nicht retten
können. Kannst ja (bei Bedarf) die betreffenden alten Beiträge wieder
hoch holen. Ich kann mich z.B. an einige Beispiel-Codes in ASM von mir
erinnern, in denen ich später (nach dem "veröffentlichen") Fehler
gefunden habe. Es gibt also viel zu entdecken...

...

von Martin B. (methusalem)


Lesenswert?

Hallo,

prinzipell hast du Recht!

Aber: Anfänger (wie ich) können oft nicht einschätzen, welche Themen
wichtig sind, was man an Grundlagen begriffen haben sollte und welche
Techniken sinnvoll sind (falscher Ansatz bei einem Problem).

Daher war meine Idee, eine Sammlung von Übungsaufgaben zu schaffen
(evtl. mit Musterlösungen), die diese Bereiche abdecken. Diese
Übungsaufgaben sollten dann an das wirklich guten AVR Tutorial
drangehängt werden.

Da ich mich aber nicht in der Lage sehe, zu entscheiden welche Themen
da in Frage kommen, hatte ich hier auf die Hilfe von den Cracks
gehofft.

Wie schon geschireben: Ich bin bereit diese Infos zu sammeln und
aufzuarbeiten um Sie dann hier zur Verfügung zu stellen. Aber ihr könnt
aus Eurer Erfahrung viel besser sagen, was immer wieder zu Problemen
führt.

Wenn Ich am WE ein wenig Zeit finde, fange ich mal mit den Dingen ann,
die mir so einfallen. Es wäre aber wirklich super, wenn ein paar von
Euch noch Stichworte in die Runde werfen. Keiner soll hier fertige
Aufgaben vormulieren, darf das aber gerne tun :-)

--
Martin

von ¹²³ (Gast)


Lesenswert?

Wie wäre es mit der Realisierung eines Taschenrechners? In dieses
Projekt könnten folgende Punkte einfließen:

- Auswertung einer Tastaturmatrix
- Entprellung der Tasten
- Addition, Subtraktion etc. von Zahlen realisieren
- Ansteuerung eines Displays

von Martin B. (methusalem)


Lesenswert?

Hallo,

ja genau solche Sachen. Vielleicht sogar noch eine Stufe niedriger
ansetzen. Stellt Euch vor, ihr fangt neu mit µC an. Bisher habt ihr
noch nichts von Registern, usw. gehört :-)

--
Martin

von Rahul D. (rahul)


Lesenswert?

dann stellt es sich manchmal sogar als äusserst schwierig heraus, eine
LED zum Leuchten zu bringen.

von Martin B. (methusalem)


Lesenswert?

Moin,

Vielleicht fällt Euch ja was gescheites zu den Unterschieden der
Register bis R16 und ab R16?

--
Martin

von Jens (Gast)


Lesenswert?

Was soll man da für eine Übungsaufgabe zu stellen. Es gibt Befehle, die
nur mit den oberen (oder waren es die unteren) 16 Registern
funktionieren. Das ist Fakt, da gibt es nichts zu üben :)

von Hannes L. (hannes)


Lesenswert?

> Vielleicht fällt Euch ja was gescheites zu den Unterschieden der
> Register bis R16 und ab R16?

Nungut, es gibt nunmal:

- Register zweiter Klasse (die "dummen")
- Register erster Klasse (die "guten")
- Register für spezielle Zwecke (LPM, MUL, Pointer)
- I/O, der schnell und bitweise ansprechbar ist
- I/O, der schnell, aber nur byteweise ansprechbar ist
- I/O (extended), der nur langsam und byteweise ansprechbar ist
- SRAM (intern / evtl. extern)
- EEPROM
- Flash, in dem die INT-Vektoren liegen
- Flash, für Programm und Konstanten verfügbar
- Flash, für Bootloader reserviert
- ein Byte mit Lockbits
- einige Bytes mit Fusebits
- 3 Signaturebytes
- Calibrationsbytes (null bis 4 Stück)

- Nochwas vergessen?

Nicht alle AVR-Typen haben alle angegebenen Kategorien.
Es ist also notwendig, sich anhand des jeweiligen Datenblattes mit der
Architektur vertraut zu machen.

Du kannst gerne den Dingen auf den Grund gehen und daraus einen
WIKI-Beitrag (Artikelsammlung) machen. Dazu brauchst du nichtmal dein
STK500 oder die dazugekauften Teile. Es genügt die Simulation im
AVR-Studio und das Lesen (und Verstehen) der Datenblätter.

Dies sind nämlich Grundlagen, die vielen Anfängern fehlen. Diese Fragen
kommen andauernd wieder auf, besonders zu Beginn eines neuen Semesters.
Es wäre also ganz nett, wenn man diese Fragen mit einem Link auf die
Artikelsammlung (auf deinen Beitrag) beantworten könnte.

Dann könntest du (wenn du schon "redaktionell" arbeiten möchtest) mal
den Programmierstil von Anfängern unter die Lupe nehmen, die Interrupts
meiden und mit Warteschleifen arbeiten.
Und als Gegensatz die Vorschläge (in den Antworten auf solche Fragen),
das Programm so aufzubauen, dass nirgends gewartet werden muss, weil
man zum Hauptprogramm zurückspringt, wenn der zu erledigende Job (noch)
nicht ausgeführt werden kann.

Wenn ich mal etwas Muße habe, suche ich mal nach alten Beiträgen, in
denen (im Dialog) Grundwissen vermittelt wird und über Stolpersteine
diskutiert wird. Diese kannst du dann gerne (mit Link auf den
Original-Thread) redaktionell aufarbeiten und in die Artikelsammlung
setzen.

Ich habe schonmal etwas gesucht. Interessantes Grundwissen (und viel
Blödsinn) erfährst du z.B. hier:

http://www.mikrocontroller.net/forum/read-1-113815.html#113815

http://www.mikrocontroller.net/forum/read-1-122901.html#122901
http://www.mikrocontroller.net/forum/read-1-136203.html#136203
http://www.mikrocontroller.net/forum/read-1-124555.html#124555
http://www.mikrocontroller.net/forum/read-1-144964.html#144964
http://www.mikrocontroller.net/forum/read-1-160711.html#160711

http://www.mikrocontroller.net/forum/read-1-235092.html#235092

Das soll erstmal genügen. Hier erfährst du erstmal sehr viel, was man
alles falsch oder besser machen kann. Dies kannst du ja redaktionell
aufarbeiten.
Wenn du damit fertig bist, kannst du ja spezielle Begriffe wie UART,
TIMER, ADC, PWM, usw. in die Forumsuche eingeben und weiter
recherchieren. Ohne Recherche werden dir kaum Ideen für Artikel
einfallen. Da das Forum schon etwas länger existiert als du mit dabei
bist, kannst du davon ausgehen, dass hier schon fast jede Frage
gestellt und beantwortet wurde, sofern sie nicht die allerneuesten
Controller betrifft.

...

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.