Palmer
01.10.2009, 18:11
Hallo,
ich benutze dieses PWM-Signal:
void init_timer1(void) //Initialisierung des Timers für Erzeugung des PWM-Signals
{
/* normale 8-bit PWM aktivieren (nicht invertiert),
Das Bit WGM10 wird im Datenblatt auch als PWM10 bezeichnet */
TCCR1A = (1<<COM1A1)|(1<<COM1B1)|(1<<WGM10);
/* Einstellen der PWM-Frequenz auf 14 kHz ( Prescaler = 1 ) */
TCCR1B = (1<<CS10);
/* Interrupts für Timer1 deaktivieren
Achtung : Auch die Interrupts für die anderen Timer stehen in diesem Register */
TIMSK &= ~0x3c;
}
(stammt aus dem Beispiel Programm für das RN-Control)
Ich würde gerne den Zählerstand auslesen (in welchem Register?), da ich eine halbwegs exakte Zeit brauche (Zeitspanne von 3 Sekunden).
Wie errechnet sich die PWM-Frequenz
Fpwm = Fclock(16MHz) : Prescaler(1) : (?)
Ist die PWM eigentlich auch konstant, wenn ich andere Intrrupts und Timer verwende?
MfG
Palmer
ich benutze dieses PWM-Signal:
void init_timer1(void) //Initialisierung des Timers für Erzeugung des PWM-Signals
{
/* normale 8-bit PWM aktivieren (nicht invertiert),
Das Bit WGM10 wird im Datenblatt auch als PWM10 bezeichnet */
TCCR1A = (1<<COM1A1)|(1<<COM1B1)|(1<<WGM10);
/* Einstellen der PWM-Frequenz auf 14 kHz ( Prescaler = 1 ) */
TCCR1B = (1<<CS10);
/* Interrupts für Timer1 deaktivieren
Achtung : Auch die Interrupts für die anderen Timer stehen in diesem Register */
TIMSK &= ~0x3c;
}
(stammt aus dem Beispiel Programm für das RN-Control)
Ich würde gerne den Zählerstand auslesen (in welchem Register?), da ich eine halbwegs exakte Zeit brauche (Zeitspanne von 3 Sekunden).
Wie errechnet sich die PWM-Frequenz
Fpwm = Fclock(16MHz) : Prescaler(1) : (?)
Ist die PWM eigentlich auch konstant, wenn ich andere Intrrupts und Timer verwende?
MfG
Palmer