mdettki
01.08.2006, 23:01
Hallo,
ich kann meine errechnete Drehzahl nicht am Oszilloskop ablesen. Leider werde ich aus der Anleitung des Oszi nicht schlau und bräuchte mal Hilfe.
Mein Motor (aus CDROM 9Volt) läuft ab 10% PWM-Duty-Cycle.
Eine Encoderscheibe 120 Löcher liefert mir Interrupts. Diese lese ich alle 0,0335 Sekunden aus.
// *** Setup Timer0-Interrupt ***
OPTION = 7; //Vorteiler 256:1
TMR0 = 125; //256-131=125
T0IE = 1; /* enable TMR0 interrupt */
if (T0IF) // Ursache des Interrupts feststellen
{ /* TMR0 overflow interrupt */
TMR0 = 125;
ist_rpm=impuls*15; // (impuls*30*60)/120
impuls=0;
T0IF = 0; /* reset flag */
}
Die Drehzahlen sind auch plausibel zwischen 270 (10%) und 2745 U/Min (100%). Wenn ich mir nun jedoch am Oszilloskop das Signal der Lichtschranke ansehe errechne ich 1200 U/Min. Ich habe es auf 50 usec eingestellt und lese an der Einteilung 4 Low und 4 High-Bits ab. Also 8 von 10 Zeiteinheiten auf der x-Achse.
Wie errechne ich daraus die Drehzahl?
Vielen Dank für Eure Hilfe
ich kann meine errechnete Drehzahl nicht am Oszilloskop ablesen. Leider werde ich aus der Anleitung des Oszi nicht schlau und bräuchte mal Hilfe.
Mein Motor (aus CDROM 9Volt) läuft ab 10% PWM-Duty-Cycle.
Eine Encoderscheibe 120 Löcher liefert mir Interrupts. Diese lese ich alle 0,0335 Sekunden aus.
// *** Setup Timer0-Interrupt ***
OPTION = 7; //Vorteiler 256:1
TMR0 = 125; //256-131=125
T0IE = 1; /* enable TMR0 interrupt */
if (T0IF) // Ursache des Interrupts feststellen
{ /* TMR0 overflow interrupt */
TMR0 = 125;
ist_rpm=impuls*15; // (impuls*30*60)/120
impuls=0;
T0IF = 0; /* reset flag */
}
Die Drehzahlen sind auch plausibel zwischen 270 (10%) und 2745 U/Min (100%). Wenn ich mir nun jedoch am Oszilloskop das Signal der Lichtschranke ansehe errechne ich 1200 U/Min. Ich habe es auf 50 usec eingestellt und lese an der Einteilung 4 Low und 4 High-Bits ab. Also 8 von 10 Zeiteinheiten auf der x-Achse.
Wie errechne ich daraus die Drehzahl?
Vielen Dank für Eure Hilfe