OLED Display Transmitter Source Code

Due to the volume of strings to be displayed, it was necessary to use the Picaxe Table memory, although it is slow.

The first 10 data sets indirectly addresses the receiver channel tables for the channel and action strings. It also includes directly the actual command character. The tenth set is special because that receiver uses a 2-character command.
The eleventh set indirectly addresses the receiver strings and the receiver channel tables of the first set.

Main reads the button presses and adjusts the indexes which designate the receiver and channel. The maximum values are the first value in the DATA sets. Main then updates the display with the current values of receiver, channel, and action.

This is black magic. I took it from the display's data sheet. It has three sets of commands!

WriteDec is only used at turn-on and is not refreshed, so it may write directly to the display.
The updates are assembled in memory one row at a time. The row in memory is firsr cleared, then the strings are inserted character-by-character. The null-termination protocol is used. At 4MHz each READTABLE command takes 5ms! After the row is complete, all 16 characters are sent to the display in one i2C command. This avoids blinking.