mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Frage zu einem einfachen Programm


Autor: Toms (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Torsten K. (ago)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du solltest vielleicht die Warteschleife "etwas" verlängern...

Autor: toms (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.