Peđa, sorry što ti škrabam po temi, neću više, al ovaj je stvarno....
![Ljut ko... :azdaja:](./images/smilies/azdaja.gif)
Moderators: pedja089, stojke369, [eDo], trax
Code: Select all
symbol MOT1=PORTB.7 ' motor 1
sYmbol MOT2=PORTB.6 ' motor 2
sYmbol MOT3=PORTB.5 ' motor 3
sYmbol TASTER1=PORTB.4
sYmbol TASTER2=PORTB.3
sYmbol TASTER3=PORTB.2
sYmbol SENZOR=PORTB.1
SYMBOL START=PORTB.0
OUTPUT MOT1
OUTPUT MOT2
OUTPUT MOT3
INPUT TASTER1
INPUT TASTER2
INPUT TASTER3
INPUT senzor
INPUT START
pocetak:
IF START=0 AND SENZOR=1 THEN 'akoje ispunjen uslov
HIGH MOT1 'motor 1 startuje
ELSE 'ako nije ispunjen uslov sve miruje
ENDIF 'ako je ispunjen uslov nastavlja
PAUSE 5000
IF TASTER1=0 AND START=0 AND SENZOR=1 THEN ' ako je ispunjen uslov
HIGH MOT1 ' svi motori startuju
HIGH MOt2
HIGH MOT3
ELSE ' ako nije ispunjen uslov sve stoji
ENDIF ' ako je ispunjen nastavlja
PAUSE 20000
label:
IF START=0 AND TASTER1=1 AND TASTER2=0 AND TASTER3=0 AND SENZOR=0 then 'akoje ispunjen uslov rade motori 2i3
LOW MOT1
HIGH MOT2
HIGH MOt3
ELSE ' ako nije ispunjen uslov svi miruje
ENDIF ' ako je ispunjen nastavlja
goto label ' sad bi trebalo da skoci na labelu i da rade motori 2 i3 dok se stanje ne promeni
Code: Select all
MyButton var PortB.0 ' Your Button can be anywhere
' Connect between PIC pin and Vss
' Use Weak Pull-Up or Resistor to Vdd
ButtonPress var BYTE ' Button Counter Variable
LongPress con 20 ' Change this value for desired SET
' function trip-point in 50mS steps
' Currently set for 1 Second
MainLoop:
LCDOut $FE,1,"Go Press..."
ButtonLoop:
Gosub GetButton
If ButtonPress>0 then
If ButtonPress=1
LCDOut $FE,1,"Short Press"
else
LCDOut $FE,1,"Long Press"
endif
Pause 1000
Goto MainLoop
endif
Goto ButtonLoop
'
' Subroutine weighs-up users finger
' in multiples of 50mS
' Constant LONGPRESS determines boredom level
' -------------------------------------------
' on Exit...
' ButtonPress=0 - No Press
' ButtonPress=1 - Short Press
' ButtonPress=2 - Long Press
GetButton:
ButtonPress=0
While MyButton=0
If ButtonPress<255 then ButtonPress=ButtonPress+1
Pause 50 ' This is also our Debounce value
Wend
If ButtonPress>0 then
If ButtonPress=>LongPress then
ButtonPress=2
else
ButtonPress=1
endif
endif
Return
Code: Select all
DEVICE = 16F877A
SYMBOL LED1 = PORTD.7 'preimenuj PORTB.7 u LED1
SYMBOL LED2 = PORTD.6 'preimenuj PORTB.6 u LED2
SYMBOL TASTER = PORTB.0 'preimenuj PORTB.0 u TASTER
OUTPUT LED1 'postavi LED1 kao izlazni
OUTPUT LED2 'postavi LED2 kao izlazni
INPUT TASTER 'postavi TASTER kao ulaz
pocetak: 'pocetak programa
LOW LED1 'ugasi obe LED
LOW LED2
tipkalo:
IF TASTER=0 THEN 'detektiranje stanja tastera(ako je pritisnut)
HIGH LED1 'upali LED1
LOW LED2 'ugasi LED2
PAUSE 1000 'pauza od 1s
LOW LED1 'ugasi LED1
HIGH LED2 'upali LED2
PAUSE 1000 'pauza 1s
else 'u suprotnom (ako nije pritisnut)
LOW LED1 'ugasi LED1
LOW LED2 'ugasi LED2
ENDIF
GOTO tipkalo 'vrati se na labelu tipkalo (petlja)
END
upotrijebi varijablu starostanje--> novo stanje primjer:IF TASTER=0 THEN
Code: Select all
IF nst >sst THEN..