100 // 110 // Flashing Led Technology... 120 // 130 PROC setup 140 PinMode (ardu, 8, 0) 150 // 160 // Read and decode our data 170 // 180 CYCLE 190 RESTORE 200 CYCLE 210 READ l, s, d 220 IF l > 8 THEN CONTINUE 230 IF l + s + d = 0 THEN BREAK 240 PROC led(l, s) 250 IF d <> 0 THEN WAIT (d / 10) 260 x = DigitalRead (ardu, 8) 270 IF x = 0 THEN PROC button 280 UPDATE 290 REPEAT 300 REPEAT 310 END 320 // 330 // PROC setup: 340 // Clear the screen and put up the LEDs 350 // 360 DEF PROC setup 370 LOCAL i 380 ardu = DrcOpen ("RPI") 390 FOR i = 0 TO 7 CYCLE 400 PinMode (ardu, i, 1) // Output 410 DigitalWrite (ardu, i, 0) // Off 420 REPEAT 430 ENDPROC 440 // 450 // PROC led: 460 // Turn an LED on or off 470 // 480 DEF PROC led(led, state) 490 DigitalWrite (ardu, led - 1, state) 500 ENDPROC 510 // 520 DEF PROC button 530 LOCAL i 540 CYCLE 550 FOR i = 0 TO 7 CYCLE 560 DigitalWrite (ardu, i, 1) 570 REPEAT 580 WAIT (0.1) 590 FOR i = 0 TO 7 CYCLE 600 DigitalWrite (ardu, i, 0) 610 REPEAT 620 WAIT (0.1) 630 IF DigitalRead (ardu, 8) = 1 THEN BREAK 640 REPEAT 650 ENDPROC 660 // 670 // LED Sequence data 680 // Data is read in triplets: L,S,D where L is the LED (1-8), S is the state 690 // 1 = on, 0 = off, and D is the delay time in 10th of seconds. 700 // 0,0,0 is end of the sequence. 710 // 720 DATA 1, 1, 1 730 DATA 2, 1, 1 740 DATA 1, 0, 0, 3, 1, 1 750 DATA 2, 0, 0, 4, 1, 1 760 DATA 3, 0, 0, 5, 1, 1 770 DATA 4, 0, 0, 6, 1, 1 780 DATA 5, 0, 0, 7, 1, 1 790 DATA 6, 0, 0, 8, 1, 1 800 DATA 7, 0, 0, 9, 1, 1 810 DATA 8, 0, 0, 10, 1, 1 820 DATA 9, 0, 1 830 DATA 10, 0, 1 840 // 850 DATA 10, 1, 1 860 DATA 9, 1, 1 870 DATA 10, 0, 0, 8, 1, 1 880 DATA 9, 0, 0, 7, 1, 1 890 DATA 8, 0, 0, 6, 1, 1 900 DATA 7, 0, 0, 5, 1, 1 910 DATA 6, 0, 0, 4, 1, 1 920 DATA 5, 0, 0, 3, 1, 1 930 DATA 4, 0, 0, 2, 1, 1 940 DATA 3, 0, 0, 1, 1, 1 950 DATA 2, 0, 1 960 DATA 1, 0, 1 970 // 980 DATA 0, 0, 0