Packed 12bit Raw image file load to display to Nokia LCD. Add function "blit12" to Nokia LCD for native 12bit color buffer.

Dependencies:   mbed

main.cpp

Committer:
sakai
Date:
2011-02-10
Revision:
1:ea521c134e8a
Parent:
0:b9050fc6f305
Child:
2:7cf441bf092d

File content as of revision 1:ea521c134e8a:

#include "mbed.h"
#include "NokiaLCD.h"
#include "SDFileSystem.h"

typedef struct {
    unsigned char r, g, b;
} RGB24;

NokiaLCD lcd(p11, p13, p14, p15, NokiaLCD::LCD6610); // mosi, sclk, cs, rst, type
SDFileSystem sd(p5, p6, p7, p8, "sd");

int main() {
    lcd.background(0x000000);
    lcd.cls();
    FILE *fp = NULL;
    fp = fopen("/sd/128x128.raw", "r");
    if (fp != NULL) {
        printf("Start!\r\n");
        RGB24 bufLine[128];
        for (int y = 0; y < 128; y++) {
            fread(bufLine, sizeof(RGB24), 128, fp);
            int bufColor[128];
            for (int x = 0; x < 128; x++) {
#if 1
                int pix = (bufLine[x].r << 16) | (bufLine[x].g << 8) | bufLine[x].b;
#else
                int pix = bufLine[x].r;
                pix <<= 8;
                pix |= bufLine[x].g;
                pix <<= 8;
                pix |= bufLine[x].b;
#endif
                bufColor[x] = pix;
            }
            lcd.blit(0, y, 128, 1, bufColor);
        }
        fclose(fp);
        printf("Finish!\r\n");
    } else {
        printf("Can't open file.\r\n");
    }
}