28 #INCLUDE ONCE "../pruio/pruio.bi"
30 #INCLUDE ONCE "../pruio/pruio_pins.bi"
49 SUB move(
BYVAL Io
AS PruIo PTR,
BYVAL Rot
AS BYTE = 1)
50 STATIC AS INTEGER p = 0
56 SELECT CASE AS CONST p
76 IF .Errr
THEN ?"initialisation failed (" & *.Errr &
")" :
EXIT DO
79 IF .gpio_set(P1, PRUIO_OUT1)
THEN ?"failed setting P1 (" & *.Errr &
")"
80 IF .gpio_set(P2, PRUIO_OUT0)
THEN ?"failed setting P2 (" & *.Errr &
")"
81 IF .gpio_set(P3, PRUIO_OUT0)
THEN ?"failed setting P3 (" & *.Errr &
")"
82 IF .gpio_set(P4, PRUIO_OUT1)
THEN ?"failed setting P4 (" & *.Errr &
")"
86 IF .config()
THEN ?"config failed (" & *.Errr &
")" :
EXIT DO
89 ?"Controls: (other keys quit, 1 and 3 only when Direction = 0)"
91 ?" 4 = rotate CW 5 = stop, hold position 6 = rotate CCW"
92 ?" 1 = single step CW 2 = slower 3 = single step CCW"
93 ?" 0 = stop, power off"
95 ?"Direction",
"Sleep" :
?
97 VAR w = 128,
d = 0,
x = 1,
y =
CSRLIN() - 1
98 LOCATE y,
x, 0 :
?RIGHT(
" " &
d, 2),
RIGHT(
" " &
w, 3);
102 SELECT CASE AS CONST k
103 CASE ASC(
"2") :
IF w < 512
THEN w SHL= 1
104 CASE ASC(
"8") :
IF w > 1
THEN w SHR= 1
105 CASE ASC(
"4") :
d = 1
106 CASE ASC(
"7") :
d = 2
107 CASE ASC(
"9") :
d = -2
108 CASE ASC(
"6") :
d = -1
111 CASE ASC(
"1") :
IF 0 =
d THEN move(
io, 1)
112 CASE ASC(
"3") :
IF 0 =
d THEN move(
io, -1)
116 LOCATE y,
x, 0 :
?RIGHT(
" " &
d, 2),
RIGHT(
" " &
w, 3);
125 .gpio_set(P1, PRUIO_PIN_RESET)
126 .gpio_set(P2, PRUIO_PIN_RESET)
127 .gpio_set(P3, PRUIO_PIN_RESET)
128 .gpio_set(P4, PRUIO_PIN_RESET)