Hi Ich hab mir deinen Code nicht angegschaut...
Ich hab selber grad viel Hacke für die uni....
Zur 1. Frage: Ja sicher im Fast PWM Mode Zählt er nur hinauf (bis TOP)und fängt dann wieder bei BOTTOM an.
Hingegen beim Phase Correct PWM Zählt er hinauf und dann wieder hinunter... --> prinzipiell kann er doppelt so schnell zählen... (so verstehst auch ich)
Ich kann dir nur sagen wie ichs gelöst hab.
Ich hab ihn im Mode 14 von 0 bis ICR1 (bei mir 1199) zählen lassen...
Beim Output Compare sprich (OCR1A bei mir = 799) schaltet er den Ausgang auf High.
Interrupts braucht man dafür keine !
zum vergleich mein Code:
wie ich die Bits genau gesetzt habe musst dir selber raussuchen ich hab das ganze auf zetteln.... ich muss das mal schön schreiben aber hab jetzt keine Zeit...Code:int main() { // initialize 16-Bit_Timer for fast_PWM TCCR1A = 0xC2; //init Timer TCCR1B = 0x19; OCR1A = 799; //Toggle Value ICR1 = 1199; //Top Value // initialize PD5-PORT for output DDRD |= (1<<PD5); for(;;) { } }
Ich hoff das Hilft dir weiter....
mfg lightwaver







Zitieren

Lesezeichen