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.