TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: Veguepic 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 subes el codigo seguro encontraras apoyo
-
Hola Hugo
me inmagino que deja una pausa despues del Mainloop?
por ejemplo asi
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
-
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
-
:shock:amigo Hugo de esto han pasado muchos tiempo y pense que lo habia resuelto, :D :D
un abrazo
-
: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!!!!!