buena informacion encontre en este tema, sin embargo he probado el programa pequeño:
y lo que no entiendo es el valor de PR2 es de 255 pero quiero lograr un periodo de 20ms esto me da 99999 de PR2 con la formula:
PR2= (periodopwm/(4*tosc*m))-1
donde tosc es 1/frec del cristal
y m= 1/prespaler (1,4,16), use un preescaler de 1
el cristal es de 20Mhz
alguien que me pueda ayudar???.
esta parte es la que no entiendo del todo, señale con flechitas lo que me gustaria que alguien me dijera "esto es asi":
movlw 0x04 ; aqui tengo entendido que es el valor del preescaler esto es??? (1,4,16) pero que es el peescaler para que sirve
movwf t2con ;
bsf status,rp0
movlw 0xff ; esta es la frecuendia del sistema (255) pero la obtengo con la formula que puse o es con otra?
movwf pr2 ;
bcf status,rp0
movlw 0x3F ; este valor me determina el ciclo de trabajo pero como puedo manipularlo *
movwf ccp1con ;
movlw 0x0f ; este valor me determina el ciclo de trabajo pero como puedo manipularlo *
movwf ccpr1l ;
*he investigado un poco y me e dado cuenta que:
ciclo de trabajo= ccpr1l:ccp1con<5.4>
y: preiodopwm=(ciclo de trabajo)(tosc)(m).
donde tosc es 1/frec del cristal
y m= 1/prespaler (1,4,16), use un preescaler de 1
si es asi, entonces como manipulo los valores de ccp1con y ccpr1l????.
gracias por su atencion espero alguna respuesta gracias de nuevo