Load different fonts into uLCD.

Dependencies:   4DGL-uLCD-SE PinDetect mbed

Fork of uLCD144G2_demo by jim hamblen

main.cpp

Committer:
TimothyY
Date:
2016-03-14
Revision:
11:14cf235d715f
Parent:
10:b644d6e084bc

File content as of revision 11:14cf235d715f:

// uLCD-144-G2 different fonts
//
#include "mbed.h"
#include "uLCD_4DGL.h"
#include "PinDetect.h"

uLCD_4DGL uLCD(p9,p10,p11); // serial tx, serial rx, reset pin;
PinDetect pb1(p15);
PinDetect pb2(p16);
PinDetect pb3(p17);

int volatile sizeCount=1;       //font size count, set to 1 initially
int volatile fontCount=0;       //font count
int volatile isInterrupted=1;   //indicate an interrupt
 
//pb1 to increase font size
void pb1_hit_callback (void) {
    if (sizeCount < 4) {sizeCount++;}
    uLCD.cls();
    isInterrupted=1;
}

//pb2 to decrease font size
void pb2_hit_callback (void) {
    if (sizeCount > 1) {sizeCount--;}
    uLCD.cls();
    isInterrupted=1;
}

//pb3 changes font. Loops through default, comic sans, tahoma, and courier new
void pb3_hit_callback (void) {
    if (fontCount < 3) {fontCount++;}
    else {fontCount = 0;}
    uLCD.cls();
    isInterrupted=1;
}

int main()
{
    pb1.mode(PullUp);    
    pb2.mode(PullUp);
    pb3.mode(PullUp);
    wait(.01);
    // Setup Interrupt callback functions for a pb hit
    pb1.attach_deasserted(&pb1_hit_callback);
    pb2.attach_deasserted(&pb2_hit_callback);
    pb3.attach_deasserted(&pb3_hit_callback);
    // Start sampling pb inputs using interrupts
    pb1.setSampleFrequency();
    pb2.setSampleFrequency();
    pb3.setSampleFrequency();
    uLCD.media_init(); // initialize uSD card
    uLCD.printf("\n  Hello\n  Font\n  World");
    while (1) {
        //change font settings if a button is pushed
        if(isInterrupted == 1) {
            uLCD.cls();
            isInterrupted = 0;
            //comic sans
            if(fontCount == 1) {
                uLCD.set_sector_address(0,0);
                uLCD.set_font(MEDIAFONT);
            }
            //tahoma
            else if(fontCount == 2) {
                uLCD.set_sector_address(0,0xE);
                uLCD.set_font(MEDIAFONT);
            }
            //courier new
            else if(fontCount == 3) {
                uLCD.set_sector_address(0,0x1C);
                uLCD.set_font(MEDIAFONT);
            }
            //default font
            else {
                uLCD.set_sector_address(0,0);
                uLCD.set_font(FONT_7X8);
            }
            //increase or decrease font
            uLCD.text_width(sizeCount); //1X size text
            uLCD.text_height(sizeCount);    
            uLCD.printf("\n  Hello\n  Font\n  World");
        }

    }
}