Hallo zusammen, ich bin gerade dabei einen Kaskadenregler für eine Drehzahlsteuerung zu programmieren. Dazu nutze ich einen Atmega 8. Nun meine Frage. Ich nutze den 16Bit Timer um die Drehzahl via incrementalem Drehzahlgeber zu messen. Leider muss ich dafür Timer 1 nutzen da nur dieser den ICP (Input Caputer Pin) nutzen kann. Timer 2 nutze ich um meine Abtastzeit konstant zu halten. Timer 0 generiert mir mein PWM Signal...nun sind mir die 8bit aber doch zu ungenau und ich möchte am besten 1023 Schritte haben. Ich habe überlegt die Überläufe bis max. 4 zu Zählen und dann z.B. bei einem PWM Wert von 400 einfach den ersten Durchlauf auf High zu belassen und den zweiten dann bei 400 - 255 auf low zu togglen( die Folgenden dann natürlich auch low). Das ist leider nicht so optimal weil ich dann einen dritten Interrupt im Spiel hätte der mir evtl meine Abtastzeit ruiniert. Was haltet ihr grundsätzlich von der Idee bzw kann man Timer 1 parallel zum ICP auch als 10 bit Timer nutzen? (Es währe unheimlich schön wenn nicht auf das Datenblatt verwiesen wird^^) Danke für eure Hilfe
ICP und 10 Bit PWM sollte auch gehen, macht aber ggf. die Umrechnung der Zeiten etwas komplizierter. Wenn es nur um die Auflösung geht, könnte man ggf. 8 Bit PWM nehmen und dann noch mal bei den 8 Bit PWM Werten zwischen 2 Stufen hin und her schalten. Sozusagen 8 Bit von der Harware + 2 Bits in Software. Es hängt aber von der Anwendung ab, die damit relativ hohe PWM Frequenz gewünscht ist oder gerade nicht.
das Letzte verstehe ich nicht so ganz... Hab gestern den ganzen Tag probiert ICP und FastPWM gleichzeitig zu nutzen aber irgendwie hängt er sich dabei auf. Hier ist mal die Initialisierung von Timer 1 evtl findet Ihr ja einen Fehler TCCR1A=(1<<WGM10)+(1<<WGM11)+(1<<COM1A0)+(1<<COM1A1); TCCR1B = (1<< ICNC1) + (1 << ICES1) +(1<<CS10) + (1<<WGM12); OCR1A = 512; TIMSK = (1<<TOIE1) + (1<<TICIE1) + (1<<TOIE0) + (1<<OCIE1A); sei();
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.