I'm very confused.
I think that settings are ok, but some its very strange. I changed the PIC with another one, but the same results.
PIC config & settings :
	Code:
	OSCCON = %01101010   'sets the internal oscillator to 4Mhz
DEFINE ADC_BITS 8
DEFINE ADC_CLOCK 3
DEFINE ADC_SAMPLEUS 100 
ADCON0 = %00000000    
ADCON1 = %00000000     
FVRCON = %00000000
   
CM1CON0 = 0   ' COMPARATORS OFF
CM1CON1 = 0
CM2CON0 = 0   ' COMPARATORS OFF
CM2CON1 = 0    
CPSCON0 = 0   'CAPACTIVE SENSE MODULE OFF
RCSTA.7  = 0   'SERIAL PORT OFF
TRISA =  %00000011 'PORTA.0 and PORTA.1  set Input
TRISB =  %00000000 
TRISC =  %10000100 ' PORTC.7 and PORTC.2 input    
ANSELA = %00000011 ' AN0 and AN1 set analog
ANSELB = %00000000
ANSELC = %00000100 ' AN6 set analog
OPTION_REG.7 = %00000001 'WPU enable ; Fosc/4; Prescaler 1/4
WPUA =  %00000000
WPUB =  %00000000
WPUC =  %10000000 ' enable WPUC.7
porta = 0
portb = 0
portc = 0 
inh1    var  portc.4
inh2    var  portc.0
adval  var byte
duty1  var byte
 Here work all 4 HPWM:
	Code:
	main:
adcin 0 , adval '(or adcin 1 , adval)
pause 10
          
duty1 = adval
hpwm 1 , duty1, 2000
hpwm 2 , duty1, 2000 
hpwm 3 , duty1, 2000 
hpwm 4 , duty1, 2000
 
goto main
end
 
Here works fine HPWM(2,3,4):
	Code:
	main:
adcin 6 , adval 
pause 10
          
duty1 = adval
hpwm 2 , duty1, 2000 
hpwm 3 , duty1, 2000 
hpwm 4 , duty1, 2000
 
goto main
end
 Here AN6 toggled to digital input (why ??):
	Code:
	main:
adcin 6 , adval 
pause 10
          
duty1 = adval
hpwm 1 , duty1, 2000
hpwm 2 , duty1, 2000 
hpwm 3 , duty1, 2000 
hpwm 4 , duty1, 2000
 
goto main
end
 
I tried to set manually all 4 CCP , frequency doesn't matter (2-4khz is enough for me) ,  maxim duty cycle measured with a osciloscope is 99,7 % . What is very strange , after some time, the AN6 toggle from analog to digital input. I hope that manual settings are ok.
	Code:
	T2CON = %00000100 ' Timer2 ON 
PR2 = 255
CCP1CON = %00001100
CCP2CON = %00001100
CCP3CON = %00001100
CCP4CON = %00001100
pause 200
'========================PROGRAM=============================
main:
adcin 6 , adval 
pause 10
CCPR1L = adval
CCPR2L = adval
CCPR3L = adval
CCPR4L = adval
           
goto main
end
 So, If I add HPWM1 in main program , AN6 toggle instantly from analog input to digital input. If I set manual CCP , AN6 toggle from analog to digital after some time.
I tried with 16F1938 , the same program, with different analog inputs and all work ok.
				
			
Bookmarks