Nein, musst du nicht. Für deinen Regler gibts nur die elektrische Umdrehung. Ich habe Motoren mit 7 Polpaaren. Soll heißen, ich benötige 7 elektrische Umdrehungen für eine mechanische. Alle 60 Grad schaltest du auf eine neue Phase(eben die 6 Zustände, die es gibt, hab kein passendes Wort gerade dafür). Und du möchtest genau 30 Grad nachdem der Komparator sich gemeldet hat kommutieren. Somit kannst du die Zeit, die er von der Kommutierung bis zum Komparator-Interrupt braucht, messen. Das ist dann genau die Zeit, die der Motor für 30Grad braucht. Deswegen reicht es zu, diese Zeit einfach nochmal abzuwarten, und dann erst umzuschalten. Die Grad-Angaben beziehen sich alle auf die elektrische Umdrehung. Manche fangen dann an, bei höheren Drehzahlen die Kommutierungszeitpunkt auf 25 oder sogar 20 Grad zu schieben. Ist nicht unbedingt nötig, wäre eben ein zusätzliches Feature, was nicht unbedingt gebraucht wird.
Das hat doch mit Bascom nichts zu tun. Das liegt am Atmega8, weil der Timer0 keinen CTC Modus hat. Deswegen ja auch den Atmega88. Oder eben wie du es gelöst hast. Ist umständlich, aber geht. Du kannst aber auch gleich mit dem Timer1 die Zeit messen, da hast du mehr Spielraum, weil der Timer 16bit breit ist.Den CTC Mode habe ich in Bascom leider nicht aktiviert bekommen.
Dennis
Lesezeichen