From 67d25d837ac55f28a366c0a3b262e439a6e75fc3 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sat, 19 Aug 2017 12:15:28 +0200 Subject: Add AmForth --- amforth-6.5/common/lib/hardware/i2c-lcd.frt | 31 +++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 amforth-6.5/common/lib/hardware/i2c-lcd.frt (limited to 'amforth-6.5/common/lib/hardware/i2c-lcd.frt') diff --git a/amforth-6.5/common/lib/hardware/i2c-lcd.frt b/amforth-6.5/common/lib/hardware/i2c-lcd.frt new file mode 100644 index 0000000..b404f21 --- /dev/null +++ b/amforth-6.5/common/lib/hardware/i2c-lcd.frt @@ -0,0 +1,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 +; -- cgit v1.2.3