Hallo zusammen,
ich arbeite mit dem C Control Mega 128 CAN. Momentan generiere ich eine
PWM mit dem Timer 1 und lese diese wieder mit dem Timer 3 ein. Das
funktioniert richtig. Generiere ich nun jedoch mit dem Timer 3 die PWM
und lese diese mit dem Timer 1 ein bekommt er nicht die richtigen Werte.
Ich denke dass mir irgendeine Einstellung fehlt zum Beispiel dass dieser
Pin nun auf input Timer 1 gestellt wird.
Der Code ist wie folgt:
// Deklaration der Formatierungsvariablen
#define SPACE 0x20
#define CR 13
word PM_Wert; // globale
Variablendeklaration
//----------------------------------------------------------------------
--------
// Messung
//
void Timer1_ISR(void)
{
PM_Wert=Timer_T1GetPM(); // Messwert auslesen
Irq_GetCount(INT_TIM1CAPT); // Interrupt
zurücksetzen
}
//----------------------------------------------------------------------
--------
// Hauptprogramm
//
void main(void)
{
byte n;
word i;
n=0;
Irq_SetVect(INT_TIM1CAPT,Timer1_ISR); // Interrupt Service
Routine definieren
// wir benutzen Timer 3 anstatt Timer 1 beim Mega128 da es sonst
eine
// Pin Kollision bei PB.4 mit OC0 und RX-BUSY gibt
Timer_T3PWM(256,32,PS_64); // Pulsgenerator
// Puls=4 µs*32= 128 µs
// Periode=4 µs*256=
1024 µs
// die Messung beginnt hier
// Timer Output verbinden mit ICP (input capture pin) Timer1
while (1)
{
//Timer_T1PM(0,PS_64); // Pulsmessung
initialisieren und starten
Timer_T1PM(1,PS_64); // Periodenmessung
initialisieren und starten
while (PM_Wert==0); // Pulsbreite und
Periode messen
Timer_Disable(1);
Msg_WriteHex(n); // Anzahl Durchläufe
ausgeben
Msg_WriteChar(SPACE);
Msg_WriteWord(PM_Wert); // Wert ausgeben
PM_Wert=0;
Msg_WriteChar(CR);
//AbsDelay(1000); // Delay 500ms
n++;
}
}
Warum sind beide Timer unterschiedlich im Verhalten und wie kann ich dem
Timer 1 das richtige Verhalten eintrichtern???
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.