ハイパー・マイコン mbedでインターネット 電子工作 5章 リスト5-5 NokiaLCDのプログラム

Dependencies:   NokiaLCD_With_JapaneseFont SDFileSystem mbed

main.cpp

Committer:
sunifu
Date:
2014-07-13
Revision:
0:ae9a1aa1123f

File content as of revision 0:ae9a1aa1123f:

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

NokiaLCD lcd1(p11, p13, p14, p15, NokiaLCD::LCD3300); // mosi, sclk, cs, rst, type
//NokiaLCD lcd1(p11, p13, p14, p15, NokiaLCD::PCF8833); // mosi, sclk, cs, rst, type
SDFileSystem sd(p5, p6, p7, p8, "sd");
char filename[20] = "/sd/icons/01d.bmp";

int PrintIcon(int px, int py)
{
    FILE *fs;
    int i;
    char    header[54];
    int rgb;
    unsigned char datr,datg,datb;
           
    printf( "Weather icons access [%s]\r\n",filename);
    if ( NULL == (fs = fopen(filename, "rb" )) ) {
        printf( "file open error when oening file ");
        return -1;
    }
    printf( "file Open OK.\r\n");
  
    //bitmap headder throw  
    for (i=0;i<0x36;i++)
        fread(&header, sizeof(unsigned char), 1, fs);
          
        
    for(int y=50;y>0;y--){
        for(int x=0;x<60;x++){       
            fread(&datb, sizeof(unsigned char), 1, fs);
            fread(&datg, sizeof(unsigned char), 1, fs);
            fread(&datr, sizeof(unsigned char), 1, fs);
            
            datb = (0xF0&datb)>>4;
            datg = (0xF0&datg)>>4; 
            datr = (0xF0&datr)>>4;
                        
            rgb = (datr <<20) | (datg<<12) | (datb<<4);
            lcd1.pixel(px+x,py+y,rgb);
            
        }
    }
    
    fclose(fs);   
    return 0;
}

int main() {
    int r,g,b;

    lcd1.background(0x00000000);
    lcd1.cls();
    b = 0x000000F0 ; 
    g = 0x0000F000 ;
    r = 0x00F00000 ;
    
    lcd1.fill( 0, 0,130,10 , r ) ; 
    lcd1.fill( 0,10,130,10 , g );
    lcd1.fill( 0,20,130,10 , b );
//    lcd1.fill( 0,10,130,10 , b|r ); // purple
//    lcd1.fill( 0,20,130,10 , b|g ); // cyan

    lcd1.locate(0,4);
    lcd1.printf("Hello NokiaLCD");
    
    PrintIcon(0,70);
    
}