18 #INCLUDE ONCE "../pruio/pruio.bi"
20 #INCLUDE ONCE "../pruio/pruio_pins.bi"
22 #INCLUDE ONCE "fbgfx.bi"
32 ,
full = fb.GFX_FULLSCREEN
35 VAR p =
INSTR(
COMMAND,
"x") _
36 ,
w =
VALINT(
COMMAND) _
37 ,
h =
VALINT(
MID(
COMMAND,
p + 1))
38 IF p ANDALSO w ANDALSO h THEN
39 IF w <
S_W - 4
ANDALSO h <
S_H - 24
THEN full = fb.GFX_WINDOWED
43 PRINT "set resolution like 640x400"
49 IF 0 =
SCREENPTR THEN PRINT "no grafic available" :
END
55 ,
RGBA(255, 0, 0, 255) _
56 ,
RGBA( 0, 255, 0, 255) _
57 ,
RGBA( 0, 0, 255, 255) _
58 ,
RGBA(255, 255, 0, 255) _
59 ,
RGBA(255, 0, 255, 255) _
60 ,
RGBA( 0, 255, 255, 255) _
61 ,
RGBA(127, 127, 127, 255) _
68 IF .Errr
THEN ?"initialisation failed (" & *.Errr &
")" :
EXIT DO
71 IF .Gpio->config(
PIN, PRUIO_GPIO_IN_1)
THEN _
72 ?"failed setting trigger pin (" & *.Errr &
")" :
EXIT DO
74 IF .Adc->setStep(
STP, 4, 0, 0, 0)
THEN _
75 ?"failed setting trigger step (" & *.Errr &
")" :
EXIT DO
80 ,
mask = (1
SHL 5) + (1
SHL 8) _
83 ?"config failed (" & *.Errr &
")" :
EXIT DO
86 VAR trg1 = .Adc->mm_trg_pin(
PIN)
87 IF 0 =
trg1 THEN ?"trg1 spec failed (" & *.Errr &
")" :
EXIT DO
89 VAR trg2 = .Adc->mm_trg_ain(
STP, &h8000)
90 IF 0 =
trg2 THEN ?"trg2 spec failed (" & *.Errr &
")" :
EXIT DO
92 VAR trg3 = .Adc->mm_trg_pre(0, -&h8000,
samp SHR 1)
93 IF 0 =
trg3 THEN ?"trg3 spec failed (" & *.Errr &
")" :
EXIT DO
96 VAR lnr =
IIF(
S_H > 72,
S_H SHR 3 - 8, 1) _
97 ,
max = .Adc->Samples - .Adc->ChAz _
100 ,
fg =
RGB(0, 0, 0) _
101 ,
bg =
RGB(250, 250, 250)
107 ?"Choose trigger type"
108 ?" 0 = no trigger (start immediately)"
109 ?" 1 = GPIO trigger (pin P8_07 low)"
110 ?" 2 = analog trigger, AIN-4 > 0.9 V"
111 ?" 3 = analog pre-trigger, any AIN < 0.9 V"
112 DO :
SLEEP 1000, 0 :
k =
ASC(
INKEY()) :
LOOP UNTIL k
115 SELECT CASE AS CONST k
116 CASE ASC(
"0") :
trg = 0 :
?"starting immediately ...";
117 CASE ASC(
"1") :
trg =
trg1 :
?"waiting for GPIO trigger (pin P8_07 low) ...";
118 CASE ASC(
"2") :
trg =
trg2 :
?"waiting for analog trigger (AIN-4 > 0.9 V) ...";
119 CIRCLE (0,
S_H SHR 1), 5,
RGB(200, 200, 200), , , 1, F
120 CASE ASC(
"3") :
trg =
trg3 :
?"waiting for analog pre-trigger (any AIN < 0.9 V) ..." ;
121 CIRCLE (
S_W SHR 1,
S_H SHR 1), 5,
RGB(200, 200, 200), , , 1, F
125 IF .mm_start(
trg)
THEN ?"mm_start failed (" & *.Errr &
")" :
CONTINUE DO
127 line (0, 0)-
STEP (
S_W, 7),
bg, BF
128 FOR c
AS INTEGER = 0
TO .Adc->ChAz - 1
129 VAR i = c + .Adc->ChAz _
131 LINE (0,
S_H -
CUINT(.Adc->Value[c] *
scale)) _
134 i += .Adc->ChAz :
IF i >=
max THEN EXIT DO
141 IF .Errr
THEN ?"press any key to quit" :
SLEEP