Autor Tema: HPWM en PBP no se queda en cero  (Leído 2827 veces)

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

Desconectado Veguepic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2119
HPWM en PBP no se queda en cero
« en: 29 de Septiembre de 2010, 20:16:02 »
Hola Amigos

Estoy usando la funcion HPWM de PBP en un PIC 16F628, junto con un LCD y 3 pulsadores, el HPWM lo controlo mediante los pulsadores, 2 son para subir o bajar 1 unidad y el tercero al mantenerlo presionado junto con cualquiera de los otros 2 anteriores (subir o bajar) sube o baja 10 unidades por vez.

El circuito hace lo que debe y funciona bien, excepto por un detalle molesto.........

Al bajar el HPWM a cero, algunas veces se queda en cero como debe ser, pero otras veces aparece un pulso repetitivo de 20uS cada poco mas de 1 segundo, el valor del duty esta en cero pues lo visualizo en el LCD.

Por lo que entiendo este pulso debe aparecer cada vez que actualizo el valor del Duty.

Entenderia que no es bueno actualizar el HPWM si no ha cambiado ningun parametro (duty o frecuencia), justo acabo de implementar eso en mi codigo y ahora ya no tengo ese problema pero me queda la duda si hay que tener alguna consideracion especial al actualizar el valor del duty??

Saludos
“Si la gente es buena sólo porque temen al castigo y porque esperan una recompensa, entonces verdaderamente somos un grupo lastimoso." Albert Einstein.

Saludos desde Lima , Peru    -    Hugo

Desconectado Chrisbaf

  • PIC16
  • ***
  • Mensajes: 178
Re: HPWM en PBP no se queda en cero
« Respuesta #1 en: 04 de Diciembre de 2010, 01:35:00 »
si subes el codigo seguro encontraras apoyo

Desconectado stk500

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4919
Re: HPWM en PBP no se queda en cero
« Respuesta #2 en: 04 de Diciembre de 2010, 02:43:45 »
Hola Hugo
me inmagino que deja una pausa despues del Mainloop?
por ejemplo asi
Código: [Seleccionar]
mainloop:
44    CCP1CON.4 = duty.0   ' Store duty to registers as
45    CCP1CON.5 = duty.1   ' a 10-bit word
46    CCPR1L = DUTY >> 2
47    duty = duty + 10     ' Increase duty cycle
48
49 ' Since the total sweep of duty is 600 (800-200) and
50 ' we are adding 10 for each loop, that results in 60
51 ' steps min to max. 1 second divided by 60 = 16.67mS           
52
53    Pause 17             ' Pause 1/60 of second
54
55    IF (duty < 800) Then mainloop  ' Do it again unless 80% duty cycle
56    duty = 200           ' Reset to 20% duty cycle
57    GoTo mainloop        ' Do it forever
58
59    End 
yo tambien estoy en eso, pero con el Bascom AVR, estoy implementado un LCD y un teclado y 3 tecla extra para comandar el Duty, siendo asi lo estoy haciendo por Software.

Saludos

Desconectado Veguepic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2119
Re: HPWM en PBP no se queda en cero
« Respuesta #3 en: 12 de Abril de 2012, 08:40:54 »
Hola Rafael

Si dejo una pausa pero igual me sucede y entiendo que es por estar actualizando a cada rato el HPWM.

Al final implemente un condicional en el cual si el valor del HPWM no cambia no tengo porque actualizarlo, haciendo esto practicamente elimine el problema.

Estuve leyendo el datasheet y hay una manera de poder corregir esto pero es a nivel asembler lo cual escapa de mis manos en este momento.

Saludos
Hugo

“Si la gente es buena sólo porque temen al castigo y porque esperan una recompensa, entonces verdaderamente somos un grupo lastimoso." Albert Einstein.

Saludos desde Lima , Peru    -    Hugo

Desconectado stk500

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4919
Re: HPWM en PBP no se queda en cero
« Respuesta #4 en: 12 de Abril de 2012, 11:15:32 »
 :shock:amigo Hugo de esto han pasado muchos tiempo y pense que lo habia resuelto, :D :D

un abrazo

Desconectado Veguepic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2119
Re: HPWM en PBP no se queda en cero
« Respuesta #5 en: 12 de Abril de 2012, 15:51:57 »
 :D :D :D :D :D

Si lo habia resuelto Rafa pero no lo habia comentado y queria dar continuidad al tema para que no quede en el aire.

Es que dejo muchas cosas inconclusas  :? :?

Un abrazo!!!!!
« Última modificación: 12 de Abril de 2012, 20:53:47 por Veguepic »
“Si la gente es buena sólo porque temen al castigo y porque esperan una recompensa, entonces verdaderamente somos un grupo lastimoso." Albert Einstein.

Saludos desde Lima , Peru    -    Hugo