Forum: Mikrocontroller und Digitale Elektronik Assembler, LED Uhr, Atmega


von Glase (Gast)


Lesenswert?

Hallo leute,
ich habe in der Schule ein Seminar namens Microcontroller.
Da unser Lehrer uns nichts beibringen kann und uns einfach die Themen 
gegeben hat, muss ich jetzt selbst schaun wie ichs hinkrig.

Ich muss eine LED uhr machen, aus 132 LEDs (12xStunden, 60xMinuten, 
60xSekunden)
Wir programmieren mit Assembler
Ihm ists egal, ob ich selbst das prog für ne Uhr schreibe oder ein 
Funkmodul auswerten lasse, wobei ich bezweifle dass ich das auswerten 
lassen hinkrige.
So wie ich das sehe geht das mit einem Atmega8 auch nicht... also werde 
ich einen Atmega32 nehmen.

Kann mir jemand etwas empfehlen, oder helfen etwas zu finden.
Ich weis nicht welche beuteile ich brauche und wie ich das Programm am 
besten schreibe.

Vielen Dank schon mal :D

von Electronics'nStuff (Gast)


Lesenswert?

Glase schrieb:
> So wie ich das sehe geht das mit einem Atmega8 auch nicht...

Doch das geht garantiert :)

Glase schrieb:
> Ich weis nicht welche beuteile ich brauche und wie ich das Programm am
> besten schreibe.

Also als erstes brauchst du mal einen µC (Atmega8 -> passt).
Dann brauchst du etwas womit du alle LED's ansteuern kannst. 
Schieberegister ist hier das Zauberwort (siehe z.B. 74HC595).

Das Programm ist grundsätzlich einfach nur ein heraufzählen.
Du hast alle 1000ms einen Interrupt, wobei jeweils die Variabel 
"Sekunden" hearufgezählt wird.

z.B. so:

if (sekunden < 60)
{
    sekunden ++;
}

else
{
   sekunden = 0;
   if (minuten < 60)
   {
      minuten ++;
   }

   else
   {
       minuten = 0;
       if (stunden < 24)
       {
       stunden++;
       }
    }
}



Das ganze wandelst du jetzt noch in Assembler um, ich denke die Logik 
dahinter habe ich dir beschrieben.

Des weiteren gibt es auf dieser Seite ungefähr 124'000 Beiträge zum 
Thema "Uhr" und min. 5 Aritkel im Wiki. Alles auf Deutsch.

Gruss und viel Erfolg.

von Paul Baumann (Gast)


Lesenswert?

Glase schrob:
>Da unser Lehrer uns nichts beibringen kann und uns einfach die Themen
>gegeben hat, muss ich jetzt selbst schaun wie ichs hinkrig.

Dann werden es alle anderen in der Klasse auch nicht hinkriegen und
es fällt auf den Lehrer zurück.

Guck Dir das mal an:
http://s-huehn.de/elektronik/multiuhr/multiuhr.htm

MfG Paul

von michimi (Gast)


Lesenswert?

Informiere Dich erst einmal hier in den einzelnen Rubriken, bevor Du 
hier
postest. Und mache Dir mal ein paar Gedanken darüber, wie man so etwas 
lösen kann. Dazu findest Du hier alles!
Du sollst selbstständig denken lernen und nicht erwarten, dass man hier 
deine Hausaufgaben macht. Das ist das, was Dein Lehrer auch erreichen 
will!!!

Das geht auch mit einem ATTiny2313.

Hier ein paar Stichworte:

Latch, Adressdekoder, Multiplexen, Demultiplexer (4 zu 16), .....

von glase (Gast)


Lesenswert?

Haha, das erwarte ich auch ned, nur was soll ich denn machen wenn unser 
Lehrer uns nichteinmal die basics erklärt.
Und wenn in der heutigen Zeit schon das reine nachfragen, ob jemand paar 
tips weiß, auch schon verboten ist dann weiß ich's auch ned....

von Thomas T. (knibbel)


Lesenswert?

glase schrieb:
> Haha, das erwarte ich auch ned, nur was soll ich denn machen wenn unser
> Lehrer uns nichteinmal die basics erklärt.

Bin zwar schon länger aus der Schule raus, aber irgendwie möchte ich das 
nicht glauben.

Was macht ihr denn in den 45-Minuten-Unterrichtsstunden dann, wenn 
nichts erklärt wird?

Warum stellt ihr nicht konkrete Detailfragen? Einfach nur Themen 
verteilen kann man auch einfach in einer Pause. Dafür braucht man kein 
Unterricht.

Allerdings würde ich als Lehrer auch ein Mindestmaß an analytischem 
Denken erwarten:

Wenn man mehrere Minuten auf eine Digitaluhr starrt, sollte man als 
Schüler schon selbst begreifen, dass nach der 59. Sekunde die Minuten 
inkrementiert werden und die Sekunden wieder bei 0 anfangen. Das zu 
erklären (vorzukauen), wäre mir als Lehrer zu blöd.

Gruß,
Thomas

von Paul Baumann (Gast)


Lesenswert?

Thomas schrob:
>...sollte man als
>Schüler schon selbst begreifen, dass nach der 59. Sekunde die Minuten
>inkrementiert werden und die Sekunden wieder bei 0 anfangen.

Vielleicht reicht die Aufmerksamkeit der Kollegen nur 40 Sekunden lang.
;-)

MfG Paul

von Stefan (Gast)


Lesenswert?

Klar geht das auch einem ATmega8. Als ich noch Azubi war, hatte ich 
sowas mit einem AT89C1051 und etwa 10 Transistoren gemacht. Das Programm 
war etwa 900 Bytes klein und brauchte außer den CPU Registern kein RAM. 
Minuten und Sekunden hatte ich auf einem gemeinsam genutzten LED Ring 
angezeigt, die Minute durch helles Licht und die Sekunde durch ein 
Puslierendes Licht (PWM).

von glase (Gast)


Lesenswert?

Jaja, danke für die Kommentare.
Wisst ihr es gibt Lehrer denen alles egal is... Und wenn man so einen 
hat dann hat man Pech

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.