Blinklicht 2313 in Assembeler (Anfänger)

Gast #159105
Lesenswert?

Hallo,

ich fange gerade an mit µC Programmierung in Assembler.
Auf einer Lochrasterplatine haber ich ein 2313 von atmel mit
einen 4 MHz Quarz und ein paar LED's an dem Port B aufgebaut.
Das ansteuernd der LED's bekomme ich schon hin.
Jetzt möchte ich aber das die LED's blinken.
So alle 0.5 Sec. an und dann wieder aus.

Kann mir da bitte jemand weiterhelfen.
Gruß Ingo
Gast #159106
Lesenswert?

Jetzt beginnt die hohe Schule der Assembler-Programmierung ...

Variante 1 (einfach):
Mit Verzögerungsschleifen, also (zwei) geschachtelten Schleifen mit 8
Bit Registern (DEC, CMP, Branch). Code einfach mal in Codesammlung
suchen.

Variante 2 (genialer):
Man programmiert sich einen Timer (z.B. jede 2 ms) und zählt eben bis
250 (=500ms) bei jedem Timerüberlauf, sonst Warteschleife.

Variante 3 (die Lösung, oder ?):
Ebenso per Timer; nur man schickt die CPU nach IDLE, während der Zähler
läuft.


Variante 1 kommt noch aus der Computersteinzeit, geht aber.
Variante 2 wird auch in Hochsprachen gerne per 'Wait' realisiert.

Hier im Forum einfach mal stöbern ...
Mein Tip: Sich frühzeitig mit den Timern beschäftigen, sonst verrennt
man sich bei ähnlichen Aufgaben schnell in gigantischen Schleifen.
Variante 3 hat schon die Erweiterung nach Multitasking, da wirds dann
richtig elegant. Und spätestens mit Multitasking stören
Softwareschleifen ungemein (aber, man betrachte das Win95 Problem auf
AMD-K6 II >300 MHz, die Schleifengeschichte ist hartnäckig auch in den
Köpfen von 'Profis')

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren