Izvinjavan se u konfiguraciji je bio problem evo koda koji radi:
Code:
#CONFIG
__CONFIG _INTRC_OSC_NOCLKOUT & _WDT_OFF & _MCLRE_OFF & _BOD_OFF & _CP_OFF & _PWRTE_ON
#ENDCONFIG
DEFINE OSC 8
' Include "modedefs.bas" ' Pozivanje moda sift registra
' Shiftout Modes
Symbol LSBFIRST = 0 ' LSB first
Symbol MSBFIRST = 1 ' MSB first
DEFINE SHIFT_PAUSEUS 100
'-------------------------- PDESAVANJA --------------
ANSEL = 0 ' Set all digital
CMCON0 = 7 ' Analog comparators off
WPU = 0 '??????????
TRISIO = %00111000 ' TRISIO = %111000 '012-Izlaz 345 Ulaz
OPTION_REG = %11000000
' ANSEL = %00000000 ' select all digital
OSCCON = %01110101 ' 8Mhz
' CMCON0 = %00000111 ' disable comparator
gore var GPIO.4
dole var GPIO.5
stanje var GPIO.3
INPUT stanje
'DEFINICIJA PINOVA ZA SIFT REGISTER
'***************************************************
DataPin var GPIO.0 ' Shift data pin 0 *
ClkPin var GPIO.1 ' Shift clock pin 1 *
Strobe var GPIO.2 'PUSTA BBOJ KROZ REGISTAR *
'***************************************************
Strobe = 0
x var byte
y var byte
x1 var byte
y1 var byte
x1=0
y1=0
x = 0 'GORE
y = 0 'DOLE
I VAR BYTE
Shiftout DataPin, ClkPin, MSBFIRST,[Y1,X1]'PRVI BROJ JE ZADNJI SHIFT REGISTAR
Pulsout Strobe,10
;PAUSE 500
pocetak:
'**************PODIZE**************************
if stanje=0 then goto podize
if stanje=1 then goto spusta
podize:
y=0
DO while gore = 1
'*****************STAVLJA GA NA NULU*******************
X1=0
Y1=0
Shiftout DataPin, ClkPin, MSBFIRST,[Y1,X1]'PRVI BROJ JE ZADNJI SHIFT REGISTAR
Pulsout Strobe,10
'************************************************************
loop
do while gore = 0
'*****************STAVLJA GA NA NULU*******************
X1=0
Y1=0
Shiftout DataPin, ClkPin, MSBFIRST,[Y1,X1]'PRVI BROJ JE ZADNJI SHIFT REGISTAR
Pulsout Strobe,10
'************************************************************
loop
x=1
gosub IZLAZ
for i = 1 to 7
x=x*2
gosub izlaz
next i
'*************SPUSTA***************
spusta:
x=0
do while dole = 1
'*****************STAVLJA GA NA NULU*******************
X1=0
Y1=0
Shiftout DataPin, ClkPin, MSBFIRST,[Y1,X1]'PRVI BROJ JE ZADNJI SHIFT REGISTAR
Pulsout Strobe,10
'************************************************************
loop
do while gore = 0
'*****************STAVLJA GA NA NULU*******************
X1=0
Y1=0
Shiftout DataPin, ClkPin, MSBFIRST,[Y1,X1]'PRVI BROJ JE ZADNJI SHIFT REGISTAR
Pulsout Strobe,10
'************************************************************
loop
y=1
gosub izlaz
for i = 1 to 7
y=y*2
gosub izlaz
next i
goto podize
'*********************************************
izlaz:
x1=x
y1=y
Shiftout DataPin, ClkPin, MSBFIRST,[Y1,X1]'PRVI BROJ JE ZADNJI SHIFT REGISTAR
Pulsout Strobe,10
'pause 500
'***************PODESAVANJE PAUZA************************
'X1-GORNJI RED
'Y DONJI RED
IF X1 = 1 THEN PAUSE 1000 'pin J8
if x1 = 2 then pause 1000 'PIN J7
IF X1 = 4 THEN PAUSE 2000 'PIN J6
if x1 = 8 then pause 4000 'PIN J5
if x1 = 16 then pause 2000 'PIN J4
if x1 = 32 then pause 2000 'PIN J3
if x1 = 64 then pause 2000 'PIN J2
if x1 = 128 then pause 2000 'PIN J1
if y1 = 1 then pause 2000 'PIN J16
IF Y1 = 2 THEN pause 2000 'PIN 15
if y1 = 4 then pause 2000 'PIN 14
if y1 = 8 then pause 2000 'PIN 13
if y1 = 16 then pause 2000 'PIN 12
if y1 = 32 then pause 2000 'PIN 11
IF Y1 = 64 then pause 2000 'PIN 10
if y1 = 128 then pause 1000 'PIN 9
'*****************STAVLJA GA NA NULU*******************
X1=0
Y1=0
Shiftout DataPin, ClkPin, MSBFIRST,[Y1,X1]'PRVI BROJ JE ZADNJI SHIFT REGISTAR
Pulsout Strobe,10
'************************************************************
pause 500
return
End