-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathled-matrix-display-v2.txt
82 lines (74 loc) · 1.92 KB
/
led-matrix-display-v2.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
\ *********************************************************************
\ Drive MAX7219 display chip 8x8 LED matrix
\ Filename: led-matrix-display.txt
\ Date: 18/11/2019
\ Updated: 24/11/2019
\ File Version: 1.0
\ MCU: ARDUINO all models
\ Copyright: Marc PETREMANN
\ Author: Marc PETREMANN
\ GNU General Public License
\ *********************************************************************
\ require spi-base-avr-v2.txt
-8x8
marker -8x8
\ c1 register
\ c2 data
: max7219.send ( c1 c2 -- )
mSS1 slave.select
swap spi.csend spi.csend
mSS1 slave.deselect
;
: disp.normal ( -- )
$0c $01 max7219.send ;
: disp.shutdown ( -- )
$0c $00 max7219.send ;
: disp.test.on ( -- ) $0f
$01 max7219.send ;
: disp.test.off ( -- )
$0f $00 max7219.send ;
: disp.no.op ( -- )
$00 $00 max7219.send ;
: disp.intensity ( c -- )
$0a swap max7219.send ;
: disp.decode ( c -- )
$09 swap max7219.send ;
: disp.scan.limit ( c -- )
$0b swap max7219.send ;
: disp.set.digit ( cbits cdigit -- )
swap max7219.send ;
: disp-test-1 ( -- ) \ all LEDs on full, 232mA needed
spi.init
disp.test.on
begin key? until
disp.test.off
spi.close
;
: disp-test-2 ( -- ) \ left 4 LEDs on first row, 42mA needed
spi.init
disp.normal
$03 disp.intensity
$00 disp.scan.limit
$f0 $01 disp.set.digit
begin key? until
disp.shutdown
spi.close
;
: disp-test-3 ( -- ) \ draw face, 18mA needed
spi.init
disp.normal
$01 disp.intensity
$07 disp.scan.limit
$00 disp.decode
%00000000 $01 disp.set.digit
%01100110 $02 disp.set.digit
%00000000 $03 disp.set.digit
%00011000 $04 disp.set.digit
%00011000 $05 disp.set.digit
%10000001 $06 disp.set.digit
%01000010 $07 disp.set.digit
%00111100 $08 disp.set.digit
begin key? until
disp.shutdown
spi.close
;