Hello All,

OK, I've been on here for hours trying to research the information, but can't find exactly what I'm looking for. Even exhausted my efforts on Google, the manual and Datasheet (for what I could interpret).

I want to make all my ports digital. I have tried the adcon1 = 15 and even Darrell's alldigital.php. It doesn't work correctly. I am trying to implement some simple code, but it doesn't behave properly. What am I doing wrong?

Code:
;----[18F25K22 Hardware Configuration]------------------------------------------
#IF __PROCESSOR__ = "18F25K22"
  #DEFINE MCU_FOUND 1
#CONFIG
  CONFIG  FOSC = INTIO67     ; Internal oscillator block
  CONFIG  PLLCFG = OFF       ; Oscillator used directly
  CONFIG  PRICLKEN = OFF     ; Primary clock can be disabled by software
  CONFIG  FCMEN = OFF        ; Fail-Safe Clock Monitor disabled
  CONFIG  IESO = OFF         ; Oscillator Switchover mode disabled
  CONFIG  PWRTEN = OFF       ; Power up timer disabled
  CONFIG  BOREN = SBORDIS    ; Brown-out Reset enabled in hardware only (SBOREN is disabled)
  CONFIG  BORV = 190         ; VBOR set to 1.90 V nominal
  CONFIG  WDTEN = ON         ; WDT is always enabled. SWDTEN bit has no effect
  CONFIG  WDTPS = 32768      ; 1:32768
  CONFIG  CCP2MX = PORTC1    ; CCP2 input/output is multiplexed with RC1
  CONFIG  PBADEN = OFF       ; PORTB<5:0> pins are configured as digital I/O on Reset
  CONFIG  CCP3MX = PORTB5    ; P3A/CCP3 input/output is multiplexed with RB5
  CONFIG  HFOFST = ON        ; HFINTOSC output and ready status are not delayed by the oscillator stable status
  CONFIG  T3CMX = PORTC0     ; T3CKI is on RC0
  CONFIG  P2BMX = PORTB5     ; P2B is on RB5
  CONFIG  MCLRE = INTMCLR    ; RE3 input pin enabled; MCLR disabled
  CONFIG  STVREN = ON        ; Stack full/underflow will cause Reset
  CONFIG  LVP = OFF          ; Single-Supply ICSP disabled
  CONFIG  XINST = OFF        ; Instruction set extension and Indexed Addressing mode disabled (Legacy mode)
  CONFIG  DEBUG = OFF        ; Disabled
  CONFIG  CP0 = OFF          ; Block 0 (000800-001FFFh) not code-protected
  CONFIG  CP1 = OFF          ; Block 1 (002000-003FFFh) not code-protected
  CONFIG  CP2 = OFF          ; Block 2 (004000-005FFFh) not code-protected
  CONFIG  CP3 = OFF          ; Block 3 (006000-007FFFh) not code-protected
  CONFIG  CPB = OFF          ; Boot block (000000-0007FFh) not code-protected
  CONFIG  CPD = OFF          ; Data EEPROM not code-protected
  CONFIG  WRT0 = OFF         ; Block 0 (000800-001FFFh) not write-protected
  CONFIG  WRT1 = OFF         ; Block 1 (002000-003FFFh) not write-protected
  CONFIG  WRT2 = OFF         ; Block 2 (004000-005FFFh) not write-protected
  CONFIG  WRT3 = OFF         ; Block 3 (006000-007FFFh) not write-protected
  CONFIG  WRTC = OFF         ; Configuration registers (300000-3000FFh) not write-protected
  CONFIG  WRTB = OFF         ; Boot Block (000000-0007FFh) not write-protected
  CONFIG  WRTD = OFF         ; Data EEPROM not write-protected
  CONFIG  EBTR0 = OFF        ; Block 0 (000800-001FFFh) not protected from table reads executed in other blocks
  CONFIG  EBTR1 = OFF        ; Block 1 (002000-003FFFh) not protected from table reads executed in other blocks
  CONFIG  EBTR2 = OFF        ; Block 2 (004000-005FFFh) not protected from table reads executed in other blocks
  CONFIG  EBTR3 = OFF        ; Block 3 (006000-007FFFh) not protected from table reads executed in other blocks
  CONFIG  EBTRB = OFF        ; Boot Block (000000-0007FFh) not protected from table reads executed in other blocks
#ENDCONFIG

#ENDIF

;----[Verify Configs have been specified for Selected Processor]----------------
;       Note: Only include this routine once, after all #CONFIG blocks
#IFNDEF MCU_FOUND
  #ERROR "No CONFIGs found for [" + __PROCESSOR__ +"]"
#ENDIF

' -----[ Initialization ]-------------------------------------------------------
 
Reset:

  OSCCON = %01010000             ' 4MHz 
  ADCON1 = 15                    ' set to digital outputs
  TRISA = %00000000              ' sets pin as input (1) or output (0)
  TRISB = %00000001              ' sets pin as input (1) or output (0)
  TRISC = %10001100              ' sets pin as input (1) or output (0)
  PORTA = %00000000              ' sets outputs as high (1) or low (0)
  PORTB = %00000000              ' sets outputs as high (1) or low (0)
  PORTC = %00000000              ' sets outputs as high (1) or low (0)

' -----[ Variables ]------------------------------------------------------------
 
    led1          var   porta.1  ' LED 1
    led2          var   porta.2  ' LED 2
    led3          var   portb.1  ' LED 3
    led4          var   portb.2  ' LED 4

action:
      
    led1 = 1
    pause 500

    led2 = 1
    pause 500

    led3 = 1
    pause 500

    led4 = 1
    pause 5000
This code should sequence on in half second intervals and stay on at the end. I had more code, but what was happening was it was sequencing on and then resetting after the sequence. I've tried putting code that made it hold in a loop, but when the LED's sequence on and it reaches the 5 second mark, the whole thing resets.

Also, when the code goes from LED1 to LED2, LED1 turns off. The rest stay on, but LED1 always turns off.

Any thoughts? I've spent over 6 hours trying to figure this out.

Thanks,
Tony