Gast
#1995690
Hallo, ich möchte ein Sinussignal zwischen 63,00 und 65,00Hz auf cHz genau ausgeben. In der Anordnung habe ich einen Atmega 162 auf STK500. Das Sinussignal hat nur 24 Stützstellen, da der Aktor, der damit betrieben werden soll entsprechend träge ist. Sinus wird mit Timer2(8Bit) fast PWM, kein prescale sowie Timer3 (16Bit) kein prescale über OCR3A fürs Auslesen der LUT erzeugt. Das Sinussignal lasse ich zum Einen auf dem Oszi darstellen, zum Anderen wandle ich das Signal mit einem Schmitt Trigger und füttere damit die ICP von Timer 1 (prescale256). Dazu lasse ich mir die Ergebnisse der Messung in ms*100, also für 15,873 dann 15873 über UART ausgeben. (Periodendauer) Ich hatte vor, damit eine Wertetabelle zu erstellen, indem ich die OCR3A Werte manuell verändere und dann den Periodendauern gegenüberstelle. Daraus wollte ich eine Funktion ableiten, die dann im Projektprogramm aus entsprechenden Messergebnissen die korrekte Frequenz erzeugt. Allerdings bringen die Änderungen des OCR3A in Einzelschritten, also zB. von 2332 zu 2333 keine Änderung in den UART Ergebnissen. Erst nach einigen weiteren Einzelschritten verändert sich auch die Anzeige der ms*100 Im Oszi sind die Änderungen wg der Auflösung auch nur sprunghaft zu sehen. Kann es sein, dass Interruptkonflikte UART/ICP/OCR eine Ursache sind, oder gehe ich das Ganze völlig falsch an? Würde mich über einen Tipp freuen Thomas