Hello all,

I started to use the PIC18F25k22 SSOP package. From the very beginning, I have a problem with using this microcontroller. I wrote a test program to try out all the peripherals that are on the PCB. The problem with reading switches that are connected to PORTA.6 I PORTA.7 and also is a problem at PORTC.7. I do not know what to do. This PIC18F25K22 is driving me crazy. The complete test program I attach to the message. Any help is welcome.

Thank a lot in advance!

Code:
define OSC 16
include "HPWM10_L.pbp"

#CONFIG
    CONFIG FOSC = INTIO67
    CONFIG PLLCFG = OFF
    CONFIG PRICLKEN = ON
    CONFIG FCMEN = OFF
    CONFIG IESO = OFF
    CONFIG PWRTEN = ON
    CONFIG BOREN = OFF
    CONFIG BORV = 285
    CONFIG WDTEN = OFF
    CONFIG WDTPS = 32768
    CONFIG CCP2MX = PORTB3
    CONFIG PBADEN = OFF
    CONFIG CCP3MX = PORTB5
    CONFIG HFOFST = ON
    CONFIG T3CMX = PORTB5
    CONFIG P2BMX = PORTB5
    CONFIG MCLRE = INTMCLR
    CONFIG STVREN = ON
    CONFIG LVP = OFF
    CONFIG XINST = OFF
    CONFIG CP0 = ON
    CONFIG CP1 = ON
    CONFIG CP2 = ON
    CONFIG CP3 = ON
    CONFIG CPB = ON
    CONFIG CPD = OFF
    CONFIG WRT0 = OFF
    CONFIG WRT1 = OFF
    CONFIG WRT2 = OFF
    CONFIG WRT3 = OFF
    CONFIG WRTC = OFF
    CONFIG WRTB = OFF
    CONFIG WRTD = OFF
    CONFIG EBTR0 = OFF
    CONFIG EBTR1 = OFF
    CONFIG EBTR2 = OFF
    CONFIG EBTR3 = OFF
    CONFIG EBTRB = OFF
#ENDCONFIG

DEFINE LCD_DREG PORTA 
DEFINE LCD_DBIT 0
DEFINE LCD_RSREG PORTA
DEFINE LCD_RSBIT 5 
DEFINE LCD_EREG PORTA
DEFINE LCD_EBIT 4 
DEFINE LCD_BITS 4 
DEFINE LCD_LINE 2

DEFINE I2C_SCLOUT 1
OSCCON = %01110000 

OSCCON2 = %0000000
OSCTUNE = %10000000
T1CON   = %00000111
ANSELA = 0
ANSELB = 0
ANSELC = 0

ADCON0 = 0
pause 200

RTC             con %10100010
EPROM           CON %10100000
LM75            CON %10010000
Strelica        con 126 


OUTPUT PORTC.2
OUTPUT PORTB.0
OUTPUT PORTB.5
OUTPUT PORTB.3

symbol BCKLIGHT        = PORTC.3
symbol SDA             = PORTC.0
symbol SCL             = PORTC.1
symbol RELEJ1          = PORTB.7
symbol RELEJ2          = PORTC.4

symbol TASTLEVO        = PORTC.5
symbol TASTOK          = PORTC.6
symbol TASTDESNO       = PORTC.7

symbol TASTGORE        = PORTA.7
symbol TASTDOLE        = PORTE.3

symbol TASTODRZAVANJE  = PORTA.6

low bcklight
low relej1
low relej2

input tastlevo
input tastdesno
input tastdole
input tastgore
input tastodrzavanje
input tastok
'PROMENJIVE
X                       VAR BYTE
Seconds                 var byte
Minutes                 var byte
Hours                   var byte
Days                    var byte
Years                   var byte
Month                   var byte
Temp                    var byte
Temperatura             var byte  
Potenciometar           VAR word
Frequency               VAR WORD
DutyCycleL              VAR WORD
LMcnt                   var byte 
Frequency = 30000

low relej1
low relej2
gosub UpisiVreme 

    DutyCycleL=100
   
    @ HPWM10 4, _DutyCycleL, _Frequency
    @ HPWM10 3, _DutyCycleL, _Frequency
    @ HPWM10 2, _DutyCycleL, _Frequency
   @ HPWM10 1, _DutyCycleL, _Frequency
BCKLIGHT = 1
'relej1 = 1 
'relej2 = 1
Main:
'Lcdout $fe, 1,hex2 hours,":",hex2 minutes,":",hex2 seconds, "  ", dec3 Temperatura
lcdout $fe,$c0, dec TASTLEVO,dec TASTOK,dec TASTDESNO, dec TASTGORE ,dec TASTDOLE, dec TASTODRZAVANJE

    pause 100
    gosub UzmiVreme
    gosub OcitajTemperaturu
Goto Main

UpisiVreme:
    Seconds        = $00
    Minutes        = $15
    Hours          = $23
    Days           = $01
    Years          = $01
    Month          = $01
    I2cwrite sda,scl,rtc,$02,[seconds,minutes,hours,days,$02,month,years]
    PAUSE 10 
return 

UzmiVreme: 
    i2cread sda,scl,rtc,$02,[seconds,minutes,hours,days,temp,month,years]
    minutes.7=0:hours.7=0:hours.6=0:days.7=0:days.6=0:month.7=0:month.6=0:month.5=0
return

OcitajTemperaturu:
    LMcnt = LMcnt + 1
    if LMcnt = 4 then
        I2CREAD  sda, scl, lm75, 0,[Temperatura]
        lmcnt = 0
    endif 
return 
END