Výpočet frekvence PWM kanálu

Zdravím. Zajímalo by mě, jak lze spočíta frekvenci PWM kanálu.
Konkrétně jsem nyní zděšen:
Mám tiny2313, u ní 12MHz XTAL. //FUSES jsou OK//, procesor normálně běží.
Mám zapnutý timer1, oba PWM kanály v režimu FAST PWM 8 bitů.
Předpokládal bych tedy, že frekvence bude dána

Fxtal / divider / 2 ^ bits

kde Fxtal je frekvence procesoru, divider je dělící koeficient a 2^bits je počet kombinací, pro 8 bitů tedy 256.
Děličku jsem nastavil na 1, čítání by tedy mělo běžet rychlostí Xtalu, tj 12MHz.
12 000 000 / 1 / 256 = 46875x za sekundu nám přeteče časovač. PWM tedy běží na frekvenci 46,9kHz. DObře, proč jsem tedy multimetrem naměřil přibližně polovinu? 23,53kHz mi ukazje měřák. Proč?
Ještě pro jistotu dám kus zdrojáku, jak mám nastavené registry:

TCCR1A = (1<<COM1A1)|(1<<COM1B1)|(1<<WGM10); TCCR1B = (1<<CS10);
Co kde mám špatně?

EDIT: Zksuil jsem ještě dát jiný Xtal, změnit na interní oscilátor, a sakra proč mi to furt měří poloviční frekvenci?

EDIT2: Prohledal jsem datasheet, a našle tam v podstatě stejný vzoreček jako mám já. Frekvenci měřím tak, že jsem na výstup PWM poslal 50% střídu (OCR1A = 128), na výstup dal kondík, a za kondík odpor proti zemi. A na tom odporu se již vyskytuje střídavý signál, který měřím multimetrem.

S avr teda nedelam ale dle datasheetu ma tiny clock prescaler, ktery deli frekvenci oscilatoru urcitou hodnotou. Neni nahodou defaultne nastaveno aby se frekvence delila dvema?

Trebas u 8051 89C51 to tak je. Tak se na to zkus podivat

EDIT: aha tak nic nevsim sem si ze si nastavoval delicku na 1

Máš aktivní režim “PWM, Phase Correct, 8-bit”. Chová se to přesně dle datasheetu :wink:. Čítač totiž počítá nejdřív nahoru, ale pak místo resetu počítá zas zpátky. To, co si asi představuješ ty, je “Fast PWM”.

No já sem neskutečnej kokot…
Asi 10x jsem to kontroloval, zda jsem správně nasypal do registrů, pokaždé si tam přečtu “Phase correct”, a neni m ito divný, přitom chci Fast PWM.
To je tim, že chodim spát ve dvě. Pak nedávám pozor.
No nic no, tak jsme tu zase zbytečně otravoval. :imp: