Forum: Mikrocontroller und Digitale Elektronik Fast-Anfänger-Frage bezüglich mehrerer Zeitschleifen.


von Andreas (Gast)


Lesenswert?

Guten morgen,

ich arbeite mit folgedem Grundgerüst um eine bestimmten Takt zu 
erzeugen.

 include "tn13def.inc"
;
start:
  ldi r16, $1f
  out DDRB, r16
  ldi r16, $00
  out PortB, r16
;
Loop:
  sbi PortB, 0
  rcall Warte
  cbi PortB, 0
  rcall Warte
        rjmp Loop

Warte:

; =============================
;   Warteschleifen-Generator
;     909090 Zyklen:
; -----------------------------
; warte 909018 Zyklen:
          ldi  R17, $06
WGLOOP0:  ldi  R18, $CA
WGLOOP1:  ldi  R19, $F9
WGLOOP2:  dec  R19
          brne WGLOOP2
          dec  R18
          brne WGLOOP1
          dec  R17
          brne WGLOOP0
; -----------------------------
; warte 72 Zyklen:
          ldi  R17, $18
WGLOOP3:  dec  R17
          brne WGLOOP3
; =============================

ret



Soweit so gut.

Mit Ziel ist Folgendes:

Ich möchte das z.B der Takt 7 hz 10 sek. läuft und dann auf 10 hz 
springt.Und das wieder 10 sek. usw.

Könnte ich das einfach dadurch erzeugen, in dem ich eine 10 sekunden 
Warteschleife an die erste Schleife dranhänge ?

Grüße
Andreas

von Vlad T. (vlad_tepesch)


Lesenswert?

Schau mal im tutorial und Arbeite die Timer-Abschnitte durch.
Das wär die beste Umsetzung.

Wann immer du etwas im Code änderst müsstest du ja sonst die Wartezeit 
verändern, damit die Zykluszeit die selbe bleibt.

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.