Hallo zusammen, in meinem ATMEGA16-Programm verwende ich die Standardfunktion _delay_us(). Die Zeit soll über Variabeln verändert werden können. Diese Variabeln werden über Taster, die in einer ISR abgefragt werden verändert und neu berechnet (Periodenzeit tp, Dutycycle, ton). Hier mein Problem: Verwende ich globale Variabeln (mit Zusatz "volatile") stimmen zwar die Werte der Variabeln (mit LCD-Display überprüft), jedoch nicht die Zeiten der _delay_us()-Funktion. Deklariere ich dagegen die gleiche Variablen mit den selben Rechnungen in meiner main-Funktion stimmen die Zeiten exakt. Im Anhang findet ihr den Main-Source code. Gibt es von eurer Seite eine plausible Erklärung dafür? (Ich verwende AVR Studio 4.18, Atmega16 16MHz ext. Quarz)
Stefan I. schrieb: > Im Anhang findet ihr den Main-Source code. Gibt es von eurer Seite eine > plausible Erklärung dafür? Die delay Funktionen dürfte nicht mit Variablen als Parameter aufgerufen werden.
In diesem Fall wahrscheinlich unwichtig und längst bekannt, aber: Die Benutzung der Standard-Delays mit Variablen bläht das hexfile tierisch auf, da der float-Teil aus den delay-Innereien mit reinkommt.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.