dynamische Zeitschleife

Gast #66471
Lesenswert?

Hallo, wer kann mir weiter helfen, ich möchte eine dynamische
Zeitschleife programmieren, d. h. so dass ich beliebige Pausenzeiten
bei z.B. High-Signal am I/O Port oder dass die Zeitschleife mit
fortschreitender Zeit also nach mehreren Durchläufen selbstständig
kürzer wird. Möchte ein paar LEDs ansteuern und diese beliebig hell
dimmen, über PWM, deswegen die dynamische Zeitschleife.
Das eigentliche Problem aber ist, dass ich bei der "herkömmlichen"
Software-Zeitschleife (16bit) keine Variablen übergeben kann!
Wer kann mir weiterhelfen und weiss wie man das programmieren könnte?



Zeitschleife:

LDI ZH,HIGH(65535) ;kann in die Klammer keine Variable/Register setzen
LDI ZL,LOW(65535)
count:
SBIW ZL,1
BRNE count


Freu mich über antworten,
Danke im Vorraus, Manuel
Gast #66472
Lesenswert?

Weil Du den falschen Befehl benutzt; LDI lädt per Definition eine
Konstante. Wenn Du zum Beispiel in den Registern R16 und R17 die
Variable speicherst, kannst Du den Wert mit

MOV ZH,R16
MOV ZL,R17

ins Z-Register schaufeln. Oder, falls das Z-Register nicht noch
zeitweise eine andere Funktion hat, benutze es direkt als
Variablenspeicherplatz.

Gruß, Frank

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