Forum: Mikrocontroller und Digitale Elektronik Übungsaufgaben µC


von Beginner (Gast)


Lesenswert?

Hallo zusammen,

arbeite mich gerade in das Thema µC ein.

Habe mir dazu das Pollinboard und ein atmega 32 zugelegt.

Mir nur das Tutorial durchlesen reicht mir nicht.

Wisst ihr wo man Übungsaufgaben bekommen kann. Am besten online und 
kostenlos vielleicht sogar noch mit Lösungen.

Möchte gerne einige Anwendungen machen, damit man die Theorie besser 
versteht.

Z.b Add mit Flag übertragung, Verschiebung vom Bit usw.

Solche Sachen würde ich gerne an ein paar Beispielen vertiefen.

Gruß,

von Knut (Gast)


Lesenswert?

Welche Prozrammiersprache nutzt du? Das www sollte voll mit Übungen 
sein.



Knut

von oldmax (Gast)


Lesenswert?

Hi
Steck dir ein Ziel. Schau dir deinen µC an und überleg, wofür du ihn 
verwenden willst. Angenommen, du willst eine Uhr bauen. Also beginnst du 
damit, alles über den Timer zu lernen, bis du eine LED im Sekundentakt 
blinken lassen kannst. Nun kommt der Aufbau der Werte und die Anzeige. 
Wenn du dich mit Schaltungen erst mal zurückhalten willst, schreib dir 
eine kleine VB Applikation und lern alles über seriellen Datenaustausch. 
Nun verbinde µC und PC. Lerne Steuersignale zu übergeben und Daten 
auszuwerten. Es wird sicherlich hier und da mal stocken und schier 
unlösbare Probleme auftauchen. Doch lerne diese zu lösen. Irgendwann ist 
aus deinem Projekt Uhr eine Stoppuhr mit Datenbankhintergrund zur 
Zeiterfassung für Sport- oder Modellbauanwendung geworden. Oder du 
steuerst mit der Zeitbasis Vorgänge in deiner Wohnung. Dazu gehört das 
Abfragen von Türen und Fenstern, ob sie zu bestimmten Zeiten geschlossen 
waren. Glaub mir, Ideen kommen beim Programmieren. Versuche aus deinen 
Vorstellungen kleine Aufgaben zu separieren und Schritt für Schritt 
Module zu konstruieren. Es wird sicherlich ein leines Weilchen dauern, 
bis greifbare Erfolge zu verzeichnen sind, aber wenn du keinen Lehrer 
neben dir an der Hand hast, wird's eh auf Eigenstudium hinauslaufen.
Übrigends, ich hab ja schon öfter drauf hingewiesen, das ich ein Tool 
zum Download verfügbar gemacht habe, um einem Controller auf die 
Variablen zur LAufzeit zu schauen. Findest du unter OpenEye.
Gruß oldmax

von @openeye (Gast)


Lesenswert?

hallo oldmax,

ich hab da mal eine frage zu deinem openexe.
du hast ja deinen code in asm gepostet. kann ich den auch irgendwie mit 
c nutzen? wo muss ich den dort einfügen?

von Eggi (Gast)


Lesenswert?

Hallo,

Beginner kann es sein das du "Felix" heißt?

Egal...also wenn du Aufgaben für den Einstieg haben willst. Dann beginn 
am besten mit dem Blinken einer LED! Dazu nimmst du dir den Code und 
zerflückst ihn dir! Damit du erstmal verstehst wie man so im grunde ein 
Programm aufbaut und beginnt.

In "C" sieht das z.B. so aus.

#include<avr/io.h>
#include<util/delay.h>

int main()             // Hauptprogramm
{
DDRB=0xFF;             // Defenierung des PORT B als Ausgang
PORTB=0;               // gesamten PORT B auf "0"

while(1)               // Schleifen beginn
{
PORTB = 0x01;          // PORTB.0 auf "1"
_delay_ms(500);        // Wartezeit von 500ms
PORTB &=~ 0x01;        // PORTB.0 auf "0"
_delay_ms(500);        // Wartezeit von 500ms
}                      // Schleifen ende
return 1;              // zurück zu while
}

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Beginner schrieb:
> Mir nur das Tutorial durchlesen reicht mir nicht.
Nein.
Das LESEN allein reicht auch nicht.
Du mußt das Tutorial DURCHARBEITEN und VERSTEHEN.

Und dann lass die LED blinken.
Danach machst du eine Übertragung mit einer seriellen Schnittstelle.
Und dann stellst du z.B. die Blinkfrequnez über die serielle Schnitte 
ein.
Dann irgendwas anderes....

von ich (Gast)


Lesenswert?


von beginner (Gast)


Lesenswert?

Danke für eure Antworten:

@ Eggi: nein bin nicht flexi.

@ all:

Dank für die Tipps:

Das gibt mir schon mal eine kleinen Richtung.

Habe gefragt da ich jetzt aktuell nicht einfach alles bestellen möchte 
(vom kleinen Motor bis hin zur Segment-Anzeige) für viel Geld und 
nachher kommt man nicht voran.

Hatte gedacht das man erstmal die grundlegenden Sachen vom µC verstehen 
sollte, bevor man  an Anzeigen, Schnittstellen usw geht.

Eine Led habe ich schon zum Blinken gebracht. Hatte genau den C-Code der 
oben gepostet wurde erarbeitet. Werde es aber nun noch mal im Assembler 
machen.

Gruß,
Beginner

von oldmax (Gast)


Lesenswert?

Hi
Noch eine kurze Info zu OpenEye.
Das Programm macht nix anderes, als den Inhalt vom SRAM ab einer 
angegebenen Adresse auf Anforderung zu übertragen. Ich hab es für 
Assembler gemacht, da ich dann weiß, wo welche Variablenwerte stehen. 
Natürlich sollte es auch für C oder Bascom gehen, wenn man die Adresse 
im SRAM weiß. Allerdings ist die Darstellung auf 1 Byte beschränkt. 
Bspl. Wenn 3 Bytes im SRAM hintereinander definiert und dort 
Programmstati hinterlegt sind, also Bit x ist Signal für das Durchlaufen 
von bestimmten Routinen, dann sollte es auch in C möglich sein, der 
Senderoutine die Adresse dieser Bytes zu übergeben und diese an den PC 
zu senden. Allerdings müssen  dann die Variablennamen von Hand eingeben 
werden. Der Filter wird nicht funktioniren. Wer mit VB umgehen kann, der 
dürfte sich auch selbst dieses kleine Tool für seine Bedürfnisse 
schreiben können.
Gruß oldmax

von Düsendieb (Gast)


Lesenswert?

beginner schrieb:
> Werde es aber nun noch mal im Assembler
> machen

Wenn Du schon C programmierst, warum dann Assembler?
Du wechselst auch nicht ohne Grund aus einem Mercedes in ein offenes 
Kart


Höchstens mal für einen kleinen Übungsausflug.



Axel

von beginner (Gast)


Lesenswert?

@düsendieb:

wollte mit assembler beginnen, um die Verarbeitung im µC für den Anfang 
besser zu verstehen. Wie wird was verarbeitet.

Des Wegen wollte ich die ersten paar Übungen in Assembler.

Gruß,

Beginner

von Düsendieb (Gast)


Lesenswert?

beginner schrieb:
> @düsendieb:
>
> wollte mit assembler beginnen, um die Verarbeitung im µC für den Anfang
> besser zu verstehen. Wie wird was verarbeitet.
>
> Des Wegen wollte ich die ersten paar Übungen in Assembler.
>
> Gruß,
>
> Beginner

Lobenswert, aber nach den Übungen schnell wieder vergessen und in C 
programmieren.

Und die immer so beliebte "delay" Funktion vermeiden, da in dieser Zeit 
der Controller nichts abfragen kann. Ein Timer ist da immer besser.


Axel

von oldmax (Gast)


Lesenswert?

Hi
Warum soll er mit Assembler aufhören.. ? Es ist doch die Frage, welches 
Ergebnis am Ende eines Projektes herauskommen soll und ja, ich steige in 
ein offenes Kart, wenn die Strecke zufällig einer Rennstrecke gleicht 
und mir der Mercedes nicht das gewünschte Ergebnis brächte. Oder ich aus 
unerklärlichen Gründen vielleicht ein wenig aus dem Rahmen fallen 
würde....
Es ist doch eigemtlich völlig egal, welche Sprache ich spreche, wichtig 
ist doch das der Kellner mir das richtige Gericht bringt.
Gruß oldmax

von Düsendieb (Gast)


Lesenswert?

oldmax schrieb:
> und mir der Mercedes nicht das gewünschte Ergebnis brächte. Oder ich aus
> unerklärlichen Gründen vielleicht ein wenig aus dem Rahmen fallen
> würde....

OK, dann aber auch nur dann ist Assembler gerechtfertigt.

Aber für die tägliche Fahrt zur Arbeit, bzw die Lösung fast aller 
Programieraufgaben da ist der Mercedes und auch C einfach praktischer.

von oldmax (Gast)


Lesenswert?

Hi
Ok, noch ein klein bisschen Glaubenskrieg....
>Aber für die tägliche Fahrt zur Arbeit, bzw die Lösung fast aller
>Programieraufgaben da ist der Mercedes und auch C einfach praktischer.
Warum ? Weil es dir liegt ? Du in der Sprache gut bist ? Du nur einen 
Mercedes hast ?
So wie man mit Mercedes täglich zur Arbeit fahren kann, mag es auch per 
Pedes, mit Fahrrad, mit Mopet, mit Bus, mit Zug, usw. gehen. Zugegeben, 
nicht immer gemütlich und bequem.
Bei den Programmiersprachen gibt's außer Assembler und C noch Pascal und 
Bascom und vielleicht noch eine Vielzahl anderer Sprachen, die ich nicht 
kenne. Wer mit Bascom seine Erfolge feiert, ist doch auch zum Ziel 
gekommen. Warum dann das Ergebnis schlecht reden ? Gleiches glt für 
Assembler und all die andere Sprachen. Also, ich würd mich da nicht so 
eingrenzen, was die Programmiersprachen betrifft. Letztlich ist es dem 
Controller nicht mehr anzusehen, wenn er erst mal läuft und seinen Job 
macht, ob er mit viel Mühe in Assembler oder mal eben so in einer 
"Hohsprache" belehrt wurde....
Gruß oldmax

von Düsendieb (Gast)


Lesenswert?

oldmax schrieb:
> Ok, noch ein klein bisschen Glaubenskrieg....

Na klar ist das Geschmackssache.
Hier im Forum kommen aber häufig Anfänger mit verwuseltem Stack oder 
bestimmtem Gebrauch von Registern in Assembler nicht klar.

Daher "glaube" ich, dass zum Anfang C einfacher ist und es gibt icht so 
viel Frust.



Wenn man den Ehrgeiz hat alles bis ins kleinste Bit zu lernen, dann 
kommt man nicht um Assembler herum, oder wenn man keine ander Wahl hat 
und dem Controller bis zum Äußersten ausnutzen muss.


Axel

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.