Hi guys trying to get the PIC to go to sleep in the lowest power mode available

but i notice even in sleep mode i am still pulling 3ma

also that the outputs with week pullups are still active on outputs
wondering if this normal even when in sleep mode
or have missed a setting

cheers

Sheldon


Code:
' config for 18F46K80
 
    #CONFIG

;----- CONFIG1L Options --------------------------------------------------
    CONFIG XINST     = OFF 
    CONFIG SOSCSEL   = DIG        ; Digital (SCLKI) mode; I/O port functionality of RC0 and RC1 is enabled
    CONFIG INTOSCSEL = HIGH       ; LF-INTOSC in High-power mode during Sleep
    CONFIG RETEN     = ON         ; regulator is Enabled  (Controlled by SRETEN bit)when in sleep

;----- CONFIG1H Options --------------------------------------------------
    CONFIG IESO      = OFF 
    CONFIG FCMEN     = OFF
    CONFIG PLLCFG    = ON 
    CONFIG FOSC      = INTIO2     ; Internal RC oscillator  , PORTA.6 , PORTA.7 as I/O
 
;----- CONFIG2L Options --------------------------------------------------
    CONFIG BORPWR    = ZPBORMV    ; ZPBORMV instead of BORMV is selected
    CONFIG BORV      = 2          ; 2V
    CONFIG BOREN     = SBORDIS    ; Enabled in hardware, SBOREN disabled
    CONFIG PWRTEN    = OFF 

;----- CONFIG2H Options --------------------------------------------------
    CONFIG WDTPS     = 512        ; 1:512
    CONFIG WDTEN     = OFF        ; WDT off
  
;----- CONFIG3L Options --------------------------------------------------
; no register in the device 

;----- CONFIG3H Options --------------------------------------------------
    CONFIG MCLRE     = ON              ; MCLR ENabled FOR DIAG , RG5 DISabled
    CONFIG MSSPMSK   = MSK7            ; 7 Bit address masking mode
    CONFIG CANMX     = PORTB           ; ECAN TX and RX pins are located on RB2 and RB3, respectively

;----- CONFIG4L Options --------------------------------------------------
    CONFIG BBSIZ     = BB1K            ; 1K word Boot Block size
    CONFIG STVREN    = ON 

;----- CONFIG5L Options --------------------------------------------------  
    
    CONFIG CP0       = ON        ;  MEMORY BLOCK 0 CODE PROTECT BIT - 7KW 800h  - 3FFFh ( when 1K BOOT OPTION used )
    CONFIG CP1       = ON        ;  MEMORY BLOCK 1 CODE PROTECT BIT - 8KW 4000h - 7FFFh
    CONFIG CP2       = ON        ;  MEMORY BLOCK 2 CODE PROTECT BIT - 8KW 8000h - BFFFh
    CONFIG CP3       = ON        ;  MEMORY BLOCK 3 CODE PROTECT BIT - 8KW C000h - FFFFh
   
   
;----- CONFIG5H Options --------------------------------------------------  
   CONFIG  CPD       = OFF        ; EEPROM DATA PREOTECT BIT - EXTERNAL R/W
   CONFIG  CPB       = ON        ; BOOT BLOCK CODE PROTECT BIT 

;----- CONFIG6L Options --------------------------------------------------  
    CONFIG WRT0      = OFF       ; MEMORY BLOCK WRITE PROTECT BIT 
    CONFIG WRT1      = OFF
    CONFIG WRT2      = OFF 
    CONFIG WRT3      = OFF
  
  
;----- CONFIG6H Options --------------------------------------------------  
    CONFIG WRTD      = OFF      ; EEPROM WRITE PROTECT BIT - INTERNAL AND EXTERNAL 
    CONFIG WRTB      = ON       ; BOOT BLOCK WRITE PROTECT 
    CONFIG WRTC      = ON       ; CONFIGURATION REGISTER WRITE PROTECT BIT 
 
;----- CONFIG7L Options --------------------------------------------------  
     CONFIG EBTR0     = OFF     ; MEMORY READ TABLE BLOCK PROTECT 
     CONFIG EBTR1     = OFF
     CONFIG EBTR2     = OFF
     CONFIG EBTR3     = OFF
    
;----- CONFIG7H Options --------------------------------------------------  
    CONFIG EBTRB     = OFF     ; TABLE READ PROTECT BOOT 
 
   #ENDCONFIG
Code:
' =========== Power Shutdown routine ==================
Shut_Down:

 pwr_on = 1                              ' PWR ON = 1 = OFF  - turns off power to devices external to cpu 
@ INT_DISABLE  RBC_INT                   ; TURN OFF PortB IOC Interrupts for RX_mode  - RF_IRQ pin NOT USED WHEN IR-TX        
@ INT_DISABLE  RX2_INT                   ; Turn Off  USART RX Interrupts for RX_mode  - RX input on USART not used when IR-TX for configuration
@ INT_DISABLE  TMR0_INT                  ; disable  Timer0 interupts and start Timer0 


 INTCON.1 = 0                            ' CLEAR INT0 interupt flag prior to enable  
 PWR_shutdown = 0                        ' CLEAR shutdown flag 
@ INT_ENABLE INT0_INT                    ; Enable INT0 interupt to allow wakeup from Sleep command  - Triggered by PWR_SW , active Low  
OSCCON.7 =0                             ' clear  IDLEN bit ready for sleep command 
@ sleep                                  ; sleep command 

 return