Forum: Mikrocontroller und Digitale Elektronik dynamische Zeitschleife


von Manuel Kiefer (Gast)


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

von Frank Linde (Gast)


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

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.