I have a display that I'm able to address each LED on. There are 71 columns and 7 rows. I'm multiplexing the rows. The columns are setup on a cascade of shift registers.
I've picked up a few different 5x7 fonts to try, most are similar to this:
http://www.hwsw.no/snippets/5x7_LCD_font.php. All of them are turned sideways for my purpose. If I write out the binary block, I can basically rotate it counter-clockwise 90-degrees and get a properly oriented digit. I'd like to know how I can do this manually or if there is something else out there that already has it for me.
Second, the following code seems to print a full byte when I only have 6 bits to push to it. This results in three columns between letters instead of just the one which is undesireable. How can I restrict the number of bits pushed onto the shift register?
// Print a letter onto the display
void print_letter() //(char c)
{
int i;
char e[] = {0x1C,0x22,0x22,0x3E,0x22,0x22,0x00}; //letter layer from top to bottom
for (i=0; i<rowCount; i++)
{
shiftOut(ser, clk, MSBFIRST, e[i]);
digitalWrite(rows[i], LOW);
delay(2);
digitalWrite(rows[i], HIGH);
}
}
The complete code can be found at
https://github.com/MakeLV/LED_Signage/tree/Elizabeth if that would be helpful.