Forum: Mikrocontroller und Digitale Elektronik Frage zu einem einfachen Programm


von Toms (Gast)


Lesenswert?

Liebes Forum,

ich bin ganz neu in der Mikrocontrollerwelt und habe gerade begonnen das 
Tutorial durchzustudieren. Ich habe nach den ersten 3 Lexionen versucht 
mir selbst einige Aufgaben zu stellen.
Ich arbeite im AVR Studio 4 mit einem STK500 und wollte ein Lauflicht 
programmieren (Lauflicht nicht wirklich von Led zu Led, sondern einfach 
die Leds nach Binärsystem aufblinken zu lasen).

Mein Programm läuft im AVR Studio einwandfrei, jedoch wenn ich es in das 
STK überspiele (was auch ohne Fehlermedlung funtioniert) leuchten alles 
6 Leds auf und das wars.

Nun zu meinem Programm:

.include "m8def.inc"

ldi r16,255
out ddrb, r16     ;Port B auf Ausgang

ldi r16, 00
out ddrd, r16     ;Port D auf Eingang

.set wart=10      ;Zähler für Warteschleife

ldi r16, 254

start:    out portb, r16
          sbis pind, 0
          rjmp start



lauf:    inc r16
         out portb, r16


ldi r17, wart

warte:    dec r17
          BREQ lauf
          rjmp warte

Könnte mir bitte einer erklären, warum das so sein könnte?

Danke im voraus

von Peter (Gast)


Lesenswert?

vermutlich schaust du nur nicht genau hin, die leds blinken ein paar 
tausend mal pro sekunden.

Schau doch mal im Stdio bei der CPU dort sieht du die Zeit die jeweils 
vergeht.

von Torsten K. (ago)


Lesenswert?

Du solltest vielleicht die Warteschleife "etwas" verlängern...

von toms (Gast)


Lesenswert?

Danke für die rasche antwort.
Ich habe die Zeit auf 255 erhöht und tatsächlich blinken die eltzten 
leds leicht merkbar.
Aber warum beginnt das Programm einfach zu laufen, ohne dass ich einen 
Taster betätigt habe?

von Peter (Gast)


Lesenswert?

toms schrieb:
> Aber warum beginnt das Programm einfach zu laufen, ohne dass ich einen
> Taster betätigt habe?
kann es sein das der Taster invertiert ist, also gegen Masse schaltet?

von Spess53 (Gast)


Lesenswert?

Hi

.set wart=10      ;Zähler für Warteschleife

>ldi r17, wart
>warte:    dec r17
>          BREQ lauf
>          rjmp warte


Was meinst du denn, wie lange da gewartet wird?

MfG Spess

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.