Hallo allemaal
Ik kan de poorten J0-J1-J2-J3-J4-J5-E0-E1-E3-E4-E6-E7-H0-h2-h3-H4-H5-
niet als uitgang schakelen van de pic18f8520, wel als ingang.
Heeft iemand een idee wat ik verkeerd doe?

alvast bedankt,

DEVICE 18F8520
CONFIG_START
OSC = HS ;Oscillator Selection HS (= High Speed)
OSCS = OFF ;Oscillator Switch Enable uitgeschakeld
PWRT = ON ;Power-up Timer ingeschakeld
BOR = OFF ;Brown-out Reset uitgeschakeld
WDT = OFF ;Watchdog Timer ingeschakeld
CCP2MUX = ON ;CCP2 MUX Enable (RC1)
STVR = OFF ;Stack Overflow Reset uitgeschakeld
LVP = OFF ;Low Voltage ICSP uitgeschakeld
DEBUG = OFF ;Background Debugger Enable uitgeschakeld
CP0 = OFF ;Code Protection Block 0 uitgeschakeld
CP1 = OFF ;Code Protection Block 1 uitgeschakeld
CP2 = OFF ;Code Protection Block 2 uitgeschakeld
CP3 = OFF ;Code Protection Block 3 uitgeschakeld
CPB = OFF ;Boot Block Code Protection uitgeschakeld
CPD = OFF ;Data EEPROM Code Protection uitgeschakeld
WRT0 = OFF ;Write Protection Block 0 uitgeschakeld
WRT1 = OFF ;Write Protection Block 1 uitgeschakeld
WRT2 = OFF ;Write Protection Block 2 uitgeschakeld
WRT3 = OFF ;Write Protection Block 3 uitgeschakeld
WRTB = OFF ;Boot Block Write Protection uitgeschakeld
WRTC = OFF ;Configuration Register Write Protection uitgeschakeld
WRTD = OFF ;Data EEPROM Write Protection uitgeschakeld
EBTR0 = OFF ;Table Read Protection Block 0 uitgeschakeld
EBTR1 = OFF ;Table Read Protection Block 1 uitgeschakeld
EBTR2 = OFF ;Table Read Protection Block 2 uitgeschakeld
EBTR3 = OFF ;Table Read Protection Block 3 uitgeschakeld
EBTRB = OFF ;Boot Block Table Read Protection uitgeschakeld

CONFIG_END

XTAL 10

ALL_DIGITAL = TRUE
PORTB_PULLUPS ON
CLS

;Logische constanten

SYMBOL HOOG = 1
SYMBOL LAAG = 0
SYMBOL aan = 1
SYMBOL uit = 0

;Variabele declareren
DIM correctiewaarde AS DWORD ;teller word gebruikt bj z as te corrigeren
DIM lus_teller AS DWORD
DIM huidige_pallet AS DWORD ;huidige pallet
DIM volgende_pallet AS DWORD ;volgende pallet
DIM VERPLAATSEN AS DWORD ;VERPLAATSEN IS HUIDIGE PALLET - VOLGENDE PALLET = AANTAL STAPPEN IN PLUS OF IN MIN RICHTING
DIM pallethaler_y_as AS DWORD
DIM corrigeren AS DWORD
DIM pallet_inregelen AS DWORD
DIM pallet_1 AS DWORD
DIM pallet_2 AS DWORD
DIM pallet_3 AS DWORD
DIM pallet_4 AS DWORD
DIM pallet_5 AS DWORD
DIM pallet_6 AS DWORD
DIM pallet_7 AS DWORD
DIM richting AS BIT
DIM PALLITHALER AS WORD ;DEZE DUMMY VARIABLE HEB IK ER TUSSEN GEPLAATST OM TE VOORKOMEN DAT EEN DWORD VERDEELD WORD OVER 2 GEHEUGEBANGKEN
DIM nep1 AS BIT
DIM nep2 AS BIT
DIM nep3 AS BIT
DIM nep4 AS BIT
DIM nep5 AS BIT
DIM nep6 AS BIT
DIM nep7 AS BIT
DIM nep8 AS BIT
DIM var2 AS WORD
DIM var1 AS WORD
DIM pallet_8 AS DWORD
DIM pallet_9 AS DWORD
DIM pallet_10 AS DWORD
DIM geweizicht AS BIT
DIM Y_AS AS BIT
DIM schap AS WORD

;Poortnamen ingang

SYMBOL NOODSTOP = PORTG.0
SYMBOL S1 = PORTG.1
SYMBOL S2 = PORTG.2
SYMBOL S3 = PORTG.3
SYMBOL S4 = PORTG.4
SYMBOL S5 = PORTF.2
SYMBOL S6 = PORTF.3
SYMBOL S7 = PORTF.4
SYMBOL S8 = PORTF.5
SYMBOL S9 = PORTF.6
SYMBOL S10 = PORTF.7 ; pul up naar plus
SYMBOL S11 = PORTH.4 ;tijdejijke schakelaar voor stoppen van de z as
SYMBOL S12 = PORTH.5 ;enter knop
SYMBOL S13 = PORTE.2 ;Y as
SYMBOL Y1 = PORTH.1 ;BENADERING SCHAKELAAR Y1 is voor nulpunt bepaling zit op de lift pin 27
SYMBOL Y2 = PORTE.4 ;BENADERING SCHAKELAAR Y2 is voor pozietsie herkenning in de stelling pin 26
SYMBOL Z1 = PORTE.5 ;BENADERING SCHAKELAAR Z1 is voor nul pund bepaling pin 25
SYMBOL LV = PORTE.3
SYMBOL LA = PORTE.7
SYMBOL RV = PORTE.2
SYMBOL RA = PORTE.6
;poortnamen uitgang
SYMBOL S88_7 = PORTA.0 ;Uitgangen voor aanstuuren S88 terugmeld modulle
SYMBOL S88_8 = PORTA.1
SYMBOL S88_9 = PORTA.2
SYMBOL S88_10 = PORTA.3
SYMBOL S88_5 = PORTD.6
SYMBOL S88_6 = PORTA.5
SYMBOL S88_3 = PORTC.0
SYMBOL S88_4 = PORTC.1
SYMBOL S88_2 = PORTC.6
SYMBOL S88_1 = PORTC.7
SYMBOL bezet = PORTD.7
SYMBOL rijden = PORTH.0
;poorten voor servo
SYMBOL puls = PORTC.4 ; PULZEN VOOR SERVOMOTOR Z AS
SYMBOL dir = PORTC.5 ; DRAAIRICHTING VAN SERVOMOTOR Z AS
SYMBOL puls_y = PORTC.2 ; PULZEN VOOR SERVOMOTOR Y AS
SYMBOL dir_y = PORTC.3 ; DRAAIRICHTING VAN SERVOMOTOR Y AS
SYMBOL IN_POSITION_Y = PORTJ.6
SYMBOL IN_POSITION_Z = PORTJ.7
;poorten lcd scherm
CLEAR ;Clear ALL RAM area
DECLARE LCD_ENPIN PORTD.5 ;enable lijn
DECLARE LCD_RSPIN PORTD.4 ;register select lijn
DECLARE LCD_DTPIN PORTD.0 ;4 datalijnen bovenste 4 pinnen van één en dezelfde poort verbinden
DECLARE LCD_LINES 4 ;display heeft 4 regels
DECLARE LCD_TYPE ALPHA ;type display
DECLARE LCD_INTERFACE 4 ;4 datalijnen.

DELAYMS 1000
;76543210
PORTA = %000000
PORTB = %00000000
PORTC = %00000000
PORTD = %00000000
PORTE = %00000000 ;poorten J0-J1-J2-J3-J4-J5-E0-E1-E3-E4-E6-E7-H4-H4-H5-KAN IK ALLEEN ALS INGANG GEBRUIKEN
PORTF = %00000000
PORTG = %00000
PORTH = %00000000
PORTJ = %00000000
;76543210
TRISA = %000000 ;a poorten zijn voor display
TRISB = %01110000 ;b poorten 0 t.e.m 6 zijn voor toetsenbord
TRISC = %00000000
TRISD = %00010010
PORTE = %00111100
PORTF = %11111100
PORTG = %11111
PORTH = %00110010
PORTJ = %11000000
;76543210

Je gebruikt in ieder geval de verkeerde registers. Als uitgang moet je LATx gebruiken, niet PORTx. (port zijn input registers, LAT de outputs)
De DDR's (TRISx) van poorten E...J worden ook nergens goed gezet, zijn dan default inputs...

Hallo Arco
je hebt gelijk staat niet goed ,en daar heb ik het hele weekend overheen zitten kijken, bedankt dat je me even wakker geschut hebt

Gr teller