Programación Específica > Microcontroladores MOTOROLA

 Pwm, dudas sobre el tema

(1/1)

GPANGEL:
BUEN DIA

Hace poco realice una aplicaion de pwm con uno de estos microcontroladores sin embargo me quedaron varias dudas como son el calculo del pwm es decir su frecuencia y ciclo util para programarlos en el micro si alguien tiene infromacion al respecto se lo agredeceria de antemano.

fa61an:
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


--- Código: Text --- #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...

Navegación

[0] Índice de Mensajes

Ir a la versión completa