Gast
#161102
Hi,
Ich versuche mit der uvision2-IDE der Keil Elektronik GmbH eine
Anwendung für den C515C-L Mikrocontroller von Infineon. Bei der
Programmierung des Timers 0 als ein Interval-Timer, stellt sich das
Problem, dass die eingestellte Zeit (z.B. 10ms) nicht eingehalten wird.
Der Timer zählt genau 10 mal zu schnell.
Nachfolgend steht der Code zum Laden des Timers 0, so dass dieser
nach 10 ms eine Interrupts auslöst:
void loadTimer(unsinged int millis)using 1
{
unsigned int timeToFreq;
unsigned int loadValue;
// Folgende Formel wird für die Berechnung des Load-Wertes
// berechent: loadValue = max. loadValue-(systemclock/(6*Freqency))
timeToFreq=(1.0/timeIntervall)*1000; // Zeit in Hz umrechenen
loadValue = MAX_LOAD_VALUE - (SYSTEM_CLOCK/(6*timeToFreq));
TH0 = (char)((loadValue & 0xFF00)>>8); // High-Byte schreiben
TL0 = (char)(loadValue & 0x00FF); // Low-Byte schreiben
}
Vielen Dank für jede Antwort..