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.
Vielen Dank für den Hinweis!
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.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.