aboutsummaryrefslogtreecommitdiff
path: root/amforth-6.5/common/lib/hardware/i2c-lcd.frt
blob: b404f21d86800b5339a41c942662dbea76d03f9c (plain)
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

\ #require i2c-pe.frt

$27 Evalue i2c.lcd.hwid

%00010000  Evalue lcd.En \ enable bit
%00100000  Evalue lcd.Rw \ read/write bit
%01000000  Evalue lcd.Rs \ register select bit

: i2c.lcd.pulse ( n -- )
  dup lcd.En or i2c.pe.c!
      lcd.En invert and i2c.pe.c!
;

: i2c.lcd.!4bit ( n -- )
  dup i2c.pe.c!
      i2c.lcd.pulse
;

: i2c.lcd.send ( c mode -- )
  >r dup >< $0f and r@ or i2c.lcd.!4bit ( high )
            $0f and r> or i2c.lcd.!4bit ( low )
;

: i2c.lcd.cmd ( c -- )
  0 i2c.lcd.send 
;

: i2c.lcd.write ( c -- )
  lcd.Rs i2c.lcd.send
;