HI,
Wrote a short program to be able to input two ADCIN so I could have a variable duty cycle and variable frequency at my HPWM.
Duty cycle works fine, but the frequency output is very erratic,
example at 1v I get 500Hz
1.2v 2.2Khz
1.3v 300Hz
1.4v 620Hz
I mean the frequency is all over the place, , here is my code:
Code:
INCLUDE "modedefs.bas" 'Includes support for PicBasic language
OSCCON = %01110000 '8 Mhz
DEFINE OSC 8
CMCON = 7
' Define ADCIN parameters
Define ADC_BITS 8 ' Set number of bits in result
Define ADC_CLOCK 3 ' Set clock source (3=rc)
Define ADC_SAMPLEUS 50 ' Set sampling time in uS
DEFINE CCP1_REG PORTB
DEFINE CCP1_BIT 0
ANSEL = %00000011 ' set AN0 & AN1 as analog, others to digital
ADCON1 = %00000010 ' Set PORTA analog and RIGHT justify result
TRISB = %01000010
TRISA = %00000111
DutyCycle var byte
Frequency var byte
Mainloop:
'ADCON0 is binary '11000001' to read from AN0, and binary '11001001' to read from AN1.
ADCON0 = %11000001 'Start Conversion
pause 100
ADCIN 0, DutyCycle 'Read channel PORTA.0 Duty Cycle
pause 30
ADCON0 = %11001001 'Start Conversion
pause 100
ADCIN 1, Frequency 'Read channel PORTA.1 Frequency
pause 30
HPWM 1,DutyCycle,Frequency 'channel, dutycycle, frequency
pause 20
goto Mainloop
END
Any ideas ??
thanks
ken
Bookmarks