How often is safe to update the HPWM duty cycle when running a 12f683 at 4mhz?
I see that doing it constantly confuses the uC, so whats the safe "wait period" ?
Thanks!
How often is safe to update the HPWM duty cycle when running a 12f683 at 4mhz?
I see that doing it constantly confuses the uC, so whats the safe "wait period" ?
Thanks!
Hi Skimask,
I mean if I update the HPWM inside the main loop of a program, is it safe to update it every time the loop loops?
From my experimentation (Im controlling LED brightness using this hpwm) if I do this the LED flickers.
On the contrary, if I create a 3 lines new program with just one HPWM line and a loop:gotoloop, the LED does not flicker at all, its stable as it should be.
thanks
here is the gist of the code im running:
@ device pic12f683,INTRC_OSC_NOCLKOUT , wdt_on, mclr_off, protect_off
DEFINE OSC 4
DEFINE ADC_BITS 10
DEFINE ADC_SAMPLEUS 50
ANSEL = %00000010 ' GPIO.1 A/D in, rest digital
TRISIO = %00010010 ' GPIO.1 lectura AD,
cmcon0 = %00000100 ' AD via gpio1 and internal reference
vrcon = %10001010 ' set vref=2.25v
.
.
.
loop:
oldpote=pote
ADCIN 1, pote ' (0-65535)
if oldpote <> pote then
hpwm 1,inverduty,frecu 'these values are calculated in other section
endif
goto loop
maybe the problem is that im using ADC and HPWM simultaneously?
I don't undertand what you implied by reading that section of the DS.
Thanks!
Last edited by peu; - 5th May 2007 at 23:04.
That's just his little way of saying "I don't Know, go read the datasheet or something."<hr>
When an HPWM command executes, it treats it like it's the First time, and sets up every register needed to run PWM with the CCP module.
Changing CCP and TMR2 registers while the CCP is running PWM will cause "false pulses", Cycle Resets or elongation.
It would be nice if there was an HPWM_UPDATE command that only changed the dutycycle, without messing with the other registers. But there isn't.
If you need a totally "Glitch Free" PWM signal, then you'll have to modify the dutycycle manually. You can still use HPWM to set everything up. And then just modify the dutycycle later, after the PWM is running.
If you haven't already, you should get a copy of mister_e's PicMultiCalc.exe
It'll help figure out what values to use for the dutycycles.
http://www.mister-e.org/pages/utilitiespag.html
HTH,
DT
Bookmarks