Hi,
I am trying to make a HPWM on pin RC2 ( CCP1 on a Pic 16F886 chip.
I am not getting anything out.
I used the same code but formatted for 16F88 and it worked, so I dont know why I am not getting anything out.
Any ideas ?
thanks

Ken


Code:
OSCCON = %01110000 '8 Mhz
DEFINE OSC 8
ANSELH = 0
ADCON1 = 7
 
'///////////////////////////
'// Interrupt section //
'///////////////////////////

'////////// ADCin Config //////////////////
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 uSec
ADCON0 = %00010001 ' AN4, Configure and turn on A/D Module
ADCON1 = %00000001 ' Analog input

'/////////////////////////
'// LCD configuration //
'/////////////////////////


DEFINE LCD_DREG PORTB 	' Set LCD Data port
DEFINE LCD_DBIT 4 		' Set starting Data bit (0 or 4) if 4-bit bus  RB.4, RB.5, RB.6, RB.7
DEFINE LCD_RSREG PORTC 	' Set LCD Register Select port
DEFINE LCD_RSBIT 1 		' Set LCD Register Select bit
DEFINE LCD_EREG PORTA	' Set LCD Enable port
DEFINE LCD_EBIT 7 		' Set LCD Enable bit
DEFINE LCD_BITS 4 		' Set LCD bus size (4 or 8 bits) '4 therefore put wire at 4, 5, 6 and 7 of LCD
DEFINE LCD_LINES 2 		' Set number of lines on LCD
DEFINE LCD_COMMANDUS 2500
DEFINE LCD_DATAUS 250
DEFINE CHAR_PACING 2000
pause 1000

'/////////////////////////
'// PIN configuration //
'/////////////////////////

Digits   Var  PORTA
VoltageInput var byte
'///////////////////////////////////////////////
'// Variable Declaration and initialization //
'///////////////////////////////////////////////


VoltageDiff var byte

VoltageREF con 120 ' to get 12v output
DutyCycle var byte
DutyCycle = 127
Frequency con 30000 


'////////////////// HPWM /////////////////////////
DEFINE CCP1_REG PORTC
DEFINE CCP1_BIT 2
Pause 20


'////////////////////////////////////////////////////
'////////////////// PROGRAM /////////////////////////
'////////////////////////////////////////////////////

Mainloop:

    Gosub VoltageCheck

				lcdout $FE,1, "V_Input: ", dec VoltageInput, ":"
				lcdout $FE,$C0, " Adcin: ", dec VoltageInput 
				Pause 150  

               	
goto Mainloop
End

     
'////////////////////////////////////////////////////     
VoltageCheck:
     ADCON0.2 = 1			'Start Conversion
     
     adcin 4,VoltageInput
     
    If voltageInput < voltageREF then        ' voltageREF is 127 for 12v dc
        VoltageDiff = VoltageREF - VoltageInput     '=127+(127-115)=139
        DutyCycle = voltageREF + ( voltageREF - VoltageDiff)
        DutyCycle = DutyCycle/255 *100
        HPWM 1,DutyCycle,Frequency         'channel, dutycycle, frequency
        pause 20
    ENDIF
    
    If voltageInput = voltageREF then
        HPWM 1,DutyCycle,Frequency          'channel, dutycycle, frequency    
        pause 20
    else
        VoltageDiff =  VoltageInput - VoltageREF      '=127-(182-127)
        DutyCycle = voltageREF - ( VoltageDiff - voltageREF )
        DutyCycle = DutyCycle/255 *100
        HPWM 1,DutyCycle,Frequency 'channel, dutycycle, frequency
        pause 20
    endif

Return