La frecuencia depende de dos cosas..
1) El cristal que estés usando
2) La config del Timer 
Ejemplo GP32 con un cristal de 10 MHz
10'000.000 / 4 = 2'500.000     // Cada instruccion se ejecuta a 4 ciclos del reloj por               eso el 4
2'500.000 MHz   --->   0,4 uS     
Entonces casa 0,4 uS ejecuta una instrucción
Ahora si se tiene un Preescaler de  % 4   en el timer, el conteo del mismo se ejecuta cada  
0.4 x 4 = 1.6 uS
Y lo ultimo que haría falta saber es el modulo del conteo para el Timer... para entener aun mas ver ejemplo
-   
- #include <hidef.h>  
- #include <MC68HC908GP32.h>  
-   
- interrupt 4 void rsi_t1ch0 (void); 
- interrupt 6 void rsi_ov1 (void);  
-   
- void main(void)  
-   
-   CONFIG1|=0x01; 
-   DDRD=0x10;     
-   T1SC  =0b01110010;         // Prescaler: Div entre 4 y se habilito 
-   T1SC0 =0b01010110;        // Config del PWM 
-    
- // ****MODULOS DE CONTEO   ********\\   
-   T1MOD=0x186A;             // 186A(6250)decimal x 1,6 us = 10 ms "periodo del PWM" 
-   T1CH0 =0x09C4;            // 09C4(2500)decimal x 1,6 us = 4  ms   "Ancho del pulso" 
-                   
-   T1SC&=~(0x20);         
-   EnableInterrupts; 
-   for(;;) {    }   
- } 
-   
- // VECTORES DE INTERRUPCION  
-   
- interrupt 4 void rsi_t1ch0 (void) {  T1SC0&=(~0x80); } 
- interrupt 6 void rsi_ov1   (void) {   T1SC&=(~0x80);  } 
-   
-   
-   
Ese codigo funciona para el Codewarrior version 3.0 que es la que uso...