CharlieWing Plex LED Display
Intro

Intro

Adafruit 15x7 CharliePlex LED Matrix Display.

Driver IS31FL3731 datasheet

Code page 850

Code page 850, 9x14

Plex and I2C Words

oled-emit works like the standard word emit. It blocks the calling thread, as long as the character is not written to the OLED display (less than 300 us for a 6x8 character and 400 kHz I2C). Horizontal (x) position is in pixel (0 to 127), vertical position (y) is in lines, a line consists of 8 pixels. Larger fonts takes more than one line.

plex-emit    ( Char -- )        Emits a character (writes a character to the OLED display)
plex-emit?   ( -- Flag )        OLED ready to get a character (I2C not busy)

hook-emit    ( -- a-addr )      Hooks for redirecting terminal IO on the fly
hook-emit?   ( -- a-addr )    

plexpos!     ( x -- )           Set Plex cursor position, 
                                x horizontal position, for 6x8 font max. (15 / 6) -1, depends on the font's x size 
plexpos@     (  -- x )          Get the current Plex cursor position
plexclr      (  --  )           Clears the Plex display, sets the cursor to 0
plexfont     ( u --  )          Select the font, u: 0 6x8, 1 8x8



I2Cdev       ( u -- )           Sets the 7-bit I2C address
I2Cput       ( c-addr u -- )    c-addr buffer address for the message with lengh u to send
I2Cget       ( c-addr u -- )    c-addr buffer address for the message to receive
I2Cputget    ( a1 u1 a2 u2 -- ) a1 buffer address for the message to send, a2 buffer address for the message to receive

Usage

It is easy to redirect the terminal output to the Plex display, to use the string formatting words.

: count-down ( -- )
  plexclr
  hook-emit @    \ save emit hook
 -1 -1 -1 alarm!  \ an alarm every second
  wait-alarm  
  10 0 do
    ['] plex-emit hook-emit ! \ redirect terminal to plex-emit
    i 25 * plexpwm
    0 plexpos!
    10 i - .
    wait-alarm  
  loop
  0 .
  hook-emit !                 \ restore old hook
  cr ." 0 Launch!"
;

Marquee

-- Peter Schmid - 2020-12-29

Creative Commons License
This work by Peter Schmid is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

feather_3138_iso_demo.jpg

Edit | Attach | Watch | Print version | History: r10 | r6 < r5 < r4 < r3 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r4 - 2021-05-02 - PeterSchmid
 
  • Edit
  • Attach
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2022 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback