mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Kurze Pause für ATTiny12 ?


Autor: Dennis Reichert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich habe das Problem, das ich es nicht hinbekomme ein Programm zu
schreiben das der Mikrocontroller (in meinem Fall der ATTiny12) eine
Pause von z.B 20 ms macht. Da ich ein Lauflicht realisieren möchte das
jeweils die LED's z.B alle 20 ms um jeweils eine weiter springen.

Könnte mir jemand vielleicht helfen ?

Für die Pausen benutzte ich sonst immer folgenden Code:

      clr r16
Zaehl:
      Dec r16
      BRNE Zaehl

doch dieser ist etwas zu unflexibel !

Autor: ThomasB (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Dennis:
man kann Unterprogramm als Pausen progr.
z.b.

.nolist
.include "1200def.inc"
.list

        ser r17
  out ddrb,r17
  out portb,r17
start:  sbi portb,1
  rcall pause
  cbi portb,1
  rcall pause
  sbi portb,1
  rjmp start

pause:  ldi r16,5
loop:  dec r16
  brne loop
  ret

Autor: ThomasB (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und das ganze als Lauflicht:

.nolist
.include "1200def.inc"
.list
  ser  r16
  out  ddrb,r16
  out  portb,r16
;--------------------------------------
  ldi  r17,1
start:  rol  r17
  out  portb,r17
  rcall  pause
  rjmp  start
;--------------------------------------
pause:  ldi  r18,5
loop:  dec  r18
  brne  loop
  ret

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn du den Timer0 sonst nicht brauchst, würde ich den nehmen.

Autor: Gerhard Schmidt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn die Pause etwa länger sein soll: Zwei oder mehr Register abwärts
zählen! Zwei Zähler durchlaufen 65536 mal die innere Schleife.

; Äußere Schleife
  clr R0
loop1:
; Innere Schleife
  clr R1
loop2:
  dec R1
  brne loop2
  dec R0
  brne loop1

MfG
Gerd

Autor: Dennis Reichert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thx @ all

ich werde eure Tipps mal ausprobieren !

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.