It's ok mackrackit any help is better than none. Here's where I'm at as of now. I have encorperated the rest of the code back into the main now. I've left out the section where I figure out the seeking value and hard coded it. I've also given position a hard coded value as with nothing attached to the pin I will get garbage on the pin. I still have a pot tied to AN5 which does change the DC as I move it up and down. If you look below there are 6 lines in the "timeTomove" sub, if I uncomment the first four only I get no output. If I uncomment out the bottom two I get a couple of pulses on the output (Maybe 2 of 3) but after that the signal drops out. Any ideas? I will continue to work on this, and thank you for the help so far.


Code:
'-------------------------------------------------------------------------'
'	PIC Defines Specific to PIC Basic Pro                                  '
'-------------------------------------------------------------------------'
   ' 1. Use internal system clock
   @ DEVICE PIC16F684, INTRC_OSC_NOCLKOUT 
   ' 2. Turn watchdog timer on
   @ DEVICE PIC16F684, WDT_OFF
   ' 3. Power on time on
   @ DEVICE PIC16F684, PWRT_ON
   ' 4. Turning off the master clear input
   @ DEVICE PIC16F684, MCLR_OFF
   ' 5. Brown out detect on
   @ DEVICE PIC16F684, BOD_ON
   ' 6. Data EE Read protect is off
   @ DEVICE PIC16F684, CPD_OFF
   ' 7. Code protect is off
   @ DEVICE PIC16F684, PROTECT_OFF

'-------------------------------------------------------------------------'
'	Hardware Defines Specific to PIC Basic Pro                             '
'-------------------------------------------------------------------------'
	define ADC_BITS 10          'Set A/D coverter to use 10 bits
   define ADC_SAMPLEUS 50      'Set A/D sample time as 50us
   DEFINE OSC 8                'Change clock speed to 8Mhz
   
'-------------------------------------------------------------------------'
'	Define Program Variables                                               '
'-------------------------------------------------------------------------'
   R VAR BYTE
   ScaledX VAR BYTE
   ScaledY VAR BYTE
   ShortX VAR BYTE
   ShortY VAR BYTE
   Slope VAR WORD
   
   AnalogLow VAR WORD          'Digital value for an analog low signal
   AnalogHigh VAR WORD         'Digital value for an analog high signal
   CurrentSpeed VAR WORD
   DUTY VAR WORD
   ExtLimit VAR WORD           'Stored value of the extend limit setting
   JoyX VAR WORD
   JoyY VAR WORD
   RetLimit VAR WORD           'Stored value of the retract limit setting
   Position VAR WORD           'Analog value of the internal potentiometer
   Seeking VAR WORD
   Speed VAR WORD

'-------------------------------------------------------------------------'
'	Define I/O and EEPROM Definitions                                      '
'-------------------------------------------------------------------------'
   
   data @0,word 768            'Set default extend limit
   data @2,word 256            'Set default retract limit    

   AnalogHigh = 768            'Set analog high signal level 
   AnalogLow = 256             'Set analog low signal level

'   READ 1, RetLimit.Highbyte
'   READ 0, RetLimit.Lowbyte
'   READ 3, ExtLimit.Highbyte
'   READ 2, ExtLimit.Lowbyte

'-------------------------------------------------------------------------'
'	Initialise PIC Hardware                                                '
'-------------------------------------------------------------------------'
   CMCON0 = 7                  'Turn comparators off
	ADCON0.7 = 1                'Set A/D Values to be right justified
   ADCON0.0 = 1                'Turn on A/D Converter
   ANSEL = %00110111           'Turn on select analog registers
	TRISA = %00001111           'Turn on select register inputs
	TRISC = %00111111           'Turn on select register inputs
    
   PR2 = 249
   CCP1CON = %11001100  
   CCPR1L = 0 
   PIR1.1 = 0
   T2CON.0 = 0
   T2CON.1 = 0
   T2CON.2 = 1
   WHILE (PIR1.1 = 0)
   WEND;
   TRISC = %00000011 
'-------------------------------------------------------------------------'
'   Start of Main Program                                                 '
'-------------------------------------------------------------------------'
Main:   
   ADCIN 1, JoyX
   JoyX.LowByte = ADRESL
   JoyX.HighByte = ADRESH
  
   ADCIN 0, JoyY
   JoyY.LowByte = ADRESL
   JoyY.HighByte = ADRESH 

   ShortX = JoyX / 4
   ShortY = JoyY / 4
   Seeking = 400
   GOTO TimeToMove

TimeToMove:
   ADCIN 2, Position
   Position.LowByte = ADRESL
   Position.HighByte = ADRESH

Position = 300

   If (Position < Seeking + 10) OR (Position > Seeking - 10) THEN
'      DUTY = 0
'      CCP1CON.4 = DUTY.0
'      CCP1CON.5 = DUTY.1 
'      CCPR1L = DUTY >> 2      
   ELSE 
      IF (Position > Seeking + 10) THEN
'         CCP1CON.7 = 1
         GOSUB GETSpeed
      ENDIF
      IF (Position < Seeking - 10) THEN
'         CCP1CON.7 = 0
         GOSUB GetSpeed
      ENDIF
   ENDIF
GOTO Main

GetSpeed:
   ADCIN 5, Speed
   Speed.lowbyte = ADRESL  
   Speed.highbyte = ADRESH    
   IF (Speed > AnalogLow) & (Speed < AnalogHigh) THEN
      DUTY = 617
      CCP1CON.4 = DUTY.0
      CCP1CON.5 = DUTY.1 
      CCPR1L = DUTY >> 2
   ENDIF
   IF (Speed < AnalogLow) THEN
      DUTY = 400
      CCP1CON.4 = DUTY.0
      CCP1CON.5 = DUTY.1 
      CCPR1L = DUTY >> 2
   ENDIF
   IF (Speed > AnalogHigh) THEN
      DUTY = 850
      CCP1CON.4 = DUTY.0
      CCP1CON.5 = DUTY.1 
      CCPR1L = DUTY >> 2
   ENDIF
RETURN

END