Autor Tema: se puede eliminar un bite del tmr1l/h  (Leído 1645 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado alogic.on

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 772
se puede eliminar un bite del tmr1l/h
« en: 28 de Mayo de 2007, 07:58:03 »
hola a todos
tengo una duda sobre tmr1 y es si se puede configurar para que en vez de ser dos registros de 8 bit  utilice 7 en cada uno, me explico , que cuando el reg tmr1l alcance el nº 128 se ponga a cero e incremente uno a tmrh y cuando este desborde a 128 vuelva cero los dos he pensado hacerlo explorandolo continuamente en el bucle principal de programa asi;

timer1   movlw   .128 ;w=128
subwf    tmr1l ;resta w-tmr1l
btfss   status, 2  ;si es uno eran iguales y hay salto
goto    demora  ;si es diferente no hay salto
clrf      tmr1l   ;si hay salto: tmr1l=0
incf     tmr1h  ;suma 1 a tmr1h
subwf  tmr1h  ;resta 128 de w con tmr1h
btfss   status, 2 ;salta si son iguales
 retfie    ;si no son iguales va a donde estaba antes de empezar
clrf     tmr1h  ;si son iguales tmr1h=0
clrf     tmr1l   ;tmr1l =0
retfie   ;vuelve donde estaba

si hay alguna manera de configurarlo para eliminar el bit 7 de cada registro me gustaria conocerla , asi me quitaria un pesillo de la joroba, si la manera que hay es eta pues bueno ,que trabaje duro el micro

gracias y un saludo 

Desconectado dhmejia

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 260
Re: se puede eliminar un bite del tmr1l/h
« Respuesta #1 en: 28 de Mayo de 2007, 09:15:41 »
Y para que necesitas hacer eso? cual es la aplicación que le piensas dar al timer? no veo la necesidad de complicarse con lo que quieres hacer.

Saludos.
Pereira - Colombia

Desconectado alogic.on

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 772
Re: se puede eliminar un bite del tmr1l/h
« Respuesta #2 en: 28 de Mayo de 2007, 10:30:01 »
utilizo un pulsador con un monoestable para incrementar el tmr1 como contador de eventos , asi puedo usar estos registros para especificar el punto de inicio en el secuenciador de musica ,los datos varian MSBde 0 a 128 y LSB de 0 a128 de 129 a 256 se consideran ordenes de sistema entonces si pasa de 128 hara algo que seguro no tiene na que ver con lo que quiero.
he de decir que funciona perfectamente ,la manera de estar testando el registro continuamente lo hace cada 333us y yo no pulso tan rapido(ojala),y ese es el segundo timer el otro contador que he tenido que configurar  es de 24, 128, 128 ,pero este es como contador de eventos internos se inc o dec según haga con un encoder incremental
  es por si se me habia pasado, conocer como se podia hacer.

un saludo