Merge branch 'upstream-fixes'
[mw/micromonitor-lm32.git] / umon_ports / bf537 / blink.scr
1 # blink:
2 # Use this uMon script to blink the on-board LEDS.
3 #
4 # Usage: blink [lednum]
5 #   If 'lednum' is specified (1-6) then that particular LED will blink.
6 #   If multiple numbers are specified, then all of those LEDs will blink.
7 #   For example, "blink 1"  will cause LED1 to blink, "blink 13" will
8 #   cause LEDs 1 & 3 to blink.
9 #
10 #   If 'lednum' is not specified, then the script looks for the content
11 #   of the BIT shell variable and uses it as the bit mask to be ORed
12 #   into PORT-F.
13 #
14 gosub ENV_SETUP
15
16 if $ARGC eq 1 goto START
17 set BIT 0
18 if 1 sin $ARG1 gosub LED1
19 if 2 sin $ARG1 gosub LED2
20 if 3 sin $ARG1 gosub LED3
21 if 4 sin $ARG1 gosub LED4
22 if 5 sin $ARG1 gosub LED5
23 if 6 sin $ARG1 gosub LED6
24
25 # START
26 gosub ENV_SETUP
27 if $BIT seq \$BIT goto USAGE
28
29 pm -2o $PORTFIO_DIR $BIT
30 # LOOP:
31 pm -2o $PORTFIO_SET $BIT
32 sleep -m 500
33 pm -2o $PORTFIO_CLR $BIT
34 sleep -m 500
35 if -t gc exit
36 goto LOOP
37
38 # USAGE:
39 echo Run $ARG0 [#] (where '#' is the LED number) or set the bit mask in \$BIT
40 echo Each bit is the PF# value.
41 echo For example, 0x0040 is LED1, 0x0080 is LED2, etc...
42 exit
43
44 # ENV_SETUP:
45 set PORTFIO_DIR 0xffc00730
46 set PORTFIO_SET 0xffc00708
47 set PORTFIO_CLR 0xffc00704
48 return
49
50 # LED1:
51 set -o BIT 0x0040
52 return
53
54 # LED2:
55 set -o BIT 0x0080
56 return
57
58 # LED3:
59 set -o BIT 0x0100
60 return
61
62 # LED4:
63 set -o BIT 0x0200
64 return
65
66 # LED5:
67 set -o BIT 0x0400
68 return
69
70 # LED6
71 set -o BIT 0x0800
72 return