Gast
#699515
Moin, ich hab folgendes Programm. Ich benutze den externen Interrupt um ein Pulsweitenmoduliertes-Signal auszuwerten, das Signal hat einen Frequenz von 1KHz und im Normal Zustand ein duty cycle von 50%, der Takt meines Controllers beträgt 3MHz. Ich benutze den 16Bit Counter zur Auswertung der Pulsbreite. Ich setze den Counter am Anfang des Pulses auf Null und lese ihn mit der nächsten Flanke aus und mit der darauf folgenden Flake lese ich ihn auch noch mal aus. Dann hab ich einmal die Zeit des Impulses und der Periode, mit den ich dann die Abweichung berechne. Der berechnete Wert wird dann über die Serielleschnittstelle an den Pc übertragen, der Wert besteht aus 2 Byte, anschließend übertrage ich ein Zeichen das Signalisiert das ein neues Delta übermittelt wird.(Programm im Anhang) Ich hab nun folgendes Problem: Wenn ich die Timerauswertung mach wird nur noch Datenmüll übermittelt, das heißt, obwohl das Tastverhältnis gleichbleibt ändert sich der Wert, unzwar beträchtlich von 250 - 0 alles mal dabei. Die Serielleschnittstelle hab ich überprüft, übermittelte Zeichen werden auch empfangen. Das Signal am Interrupt ist störungsfrei. Falls einer einen Tip hat, bitte schreiben. Ich weiß nicht mehr weiter.