Henrik,
Thank you once again for the assistance and suggestions.
After implementing what you showed me and lots of staring at the data sheets I was able to get my code to compile and run this afternoon. One problem though, is that I am still only seeing a 31.2kHz 50% duty cycle square wave on the output of my pic. I am not sure what I have done. The only deviation I made from your suggestions was that I had to use CCP1 instead of CCP2 due to the way my board is already wired. (I could possibly reconfigure)
Please take a look at the following and see if you can spot my error.
Thanks again.
	Code:
	' Charger Program for PIC18F2523 Microprocessor
'      written in PICBasic 3.0.7
' Battery: Test Program for hight speed PWM
' PC Board Assembly: MAI-xyzpdq
' PC Board: MAI-123456
' Schematic: MAI-xxxxxx
' Program: MAI-yyyyyy
@ ERRORLEVEL -306			'ignore "page boundary" errors during compiling
ver		VAR BYTE[4]
ARRAYWRITE ver,["1.00"]
'PIC18F2523 Configuration Registers (Assembler)
#CONFIG
    CONFIG OSC = INTIO67    	; Set oscillator configuration Internal Oscillator
    CONFIG FCMEN = OFF	     	; Fail-Safe Clock Monitor Enable bit
    CONFIG IESO = OFF	      	; Internal/External Oscillator Switchover bit
    CONFIG PWRT = OFF	      	; Power-up Timer Enable bit
    CONFIG BOREN = SBORDIS  	; Brown out detector enabled SBOREN disabled
    CONFIG BORV = 2 	       	; Brown-Out voltage set to 2.7
    CONFIG WDT = OFF	       	; Watchdog Timer Enable bit
    CONFIG WDTPS = 32768       	; Watchdog Timer Postscale Select bits
    CONFIG CCP2MX = PORTC   	; CCP2 input/output is multiplexed with RB3
    CONFIG PBADEN = ON	     	; PORTB<4:0> pins are configured as analog I/O on Reset
    CONFIG LPT1OSC = OFF	   	; (DEF) Timer1 configured for high power operation
    CONFIG MCLRE = ON	      	; MCLR pin enabled; RE3 input pin disabled
    CONFIG STVREN = ON	     	; Stack Full/Underflow Reset Enable bit (0=disabled)
    CONFIG LVP = ON		       	; Single-Supply ICSP™ Enable bit (On = enabled)
    CONFIG XINST = OFF      	; Instruction set extension disabled
    CONFIG DEBUG = OFF	      	; Background debugger disabled, RB6 and RB7 I/O pins
    CONFIG CP0 = OFF			; Block 0 is not code protected
    CONFIG CP1 = OFF			; Block 1 is not code protected
    CONFIG CP2 = OFF			; Block 2 is not code protected
    CONFIG CP3 = OFF			; Block 3 is not code protected
    CONFIG CPB = OFF			;(DEF) Boot block is not code protected
    CONFIG CPD = OFF			;(DEF) Data EE is not read protected
    CONFIG WRT0 = OFF			;(DEF) Table 0 is not write protected
    CONFIG WRT1 = OFF			;(DEF) Table 1 is not write protected
    CONFIG WRT2 = OFF			;(DEF) Table 2 is not write protected
    CONFIG WRT3 = OFF			;(DEF) Table 3 is not write protected
    CONFIG WRTC = OFF			;(DEF) Configuration is not write protected
    CONFIG WRTB = OFF			;(DEF) Boot table is not write protected
    CONFIG WRTD = OFF			;(DEF) Data EE is not write protected
    CONFIG EBTR0 = OFF	     	;(DEF) Table 0 is not read protected
    CONFIG EBTR1 = OFF	     	;(DEF) Table 1 is not read protected
    CONFIG EBTR2 = OFF	     	;(DEF) Table 2 is not read protected
    CONFIG EBTR3 = OFF	     	;(DEF) Table 3 is not read protected
    CONFIG EBTRB = OFF	     	;(DEF) Boot table is not read protected
#ENDCONFIG
'-----------------------------------------------------------------------------
'			SETTING UP OSCILLATOR AND PWM SETTINGS
'-----------------------------------------------------------------------------
OSCCON  = %11110010				'use internal oscillator, set to 8 MHz
OSCTUNE.6 = 1					'PLL Enabled : OSC will now run at 32MHz
PR2 = 63						'pwm = 125000Hz (highest pwm for 256 steps)
DUTY			VAR WORD		'SET UP A VARIABLE FOR DUTY CYCLE
DUTY = 127						'WE SHOULD STILL HAVE A RESOLUTION OF 256 STEPS: THIS SETS PWM TO 50%
CCP1CON.4 = DUTY.0				'10 BITS OF PWM VALUES ARE SPLIT BETWEEN TWO REGISTERS
CCP1CON.5 = DUTY.1				'CCP1CON.<4:5> HOLDS THE LOWER 2  BITS
CCPR1L = (DUTY >> 2)			'CCPR1L HOLDS THE HIGH 8 BITS (SIX IN OUR SPECIFIC CASE)
TRISC.2 = 0						'MAKES CCP1 (PORT C PIN 3) AN OUTPUT
T2CON = %00000100				'SETS TMR2 PRESCALE VALUE AND ENABLES TIMER 2
CCP1CON = %00001100				'CONFIGURES CCP1 MODULE AS PWM: SEE PG 139 SECTION 15 OF DATA SHEET
 
				
			
Bookmarks