dotmatrixLED animation with ht1632 LED driver.
Dependencies: SDFileSystem mbed
main.cpp
- Committer:
- kohacraft
- Date:
- 2015-08-22
- Revision:
- 0:62dc51c731b4
- Child:
- 1:0c055badeb8f
File content as of revision 0:62dc51c731b4:
#include "mbed.h" #include "ht1632.h" #include "SDFileSystem.h" #define SD_MOSI dp2 #define SD_MISO dp1 #define SD_SCLK dp6 #define SD_CS dp13 SDFileSystem sd(SD_MOSI, SD_MISO, SD_SCLK, SD_CS, "sd"); // mosi, miso, sclk, cs, name (HW modification candidate) DigitalOut myled(LED1); void bmpDisp( FILE *fp ) { unsigned char data[32]; unsigned char *gData =&data[0],*rData=&data[8],*bData=&data[16]; fseek(fp, 54 , SEEK_SET);//bitmap headder throw for( int j = 7 ; j>=0 ; j-- ) { rData[j] = 0; gData[j] = 0; bData[j] = 0; for( int i=0 ; i<8 ; i++ ) { bData[j] = bData[j] <<1; if ( fgetc(fp) > 127 ) bData[j] = bData[j] | 0x01; gData[j] = gData[j]<<1; if ( fgetc(fp) > 127 ) gData[j] |= 0x01; rData[j] = rData[j]<<1; if ( fgetc(fp) > 127 ) rData[j] |= 0x01; } } sendData( 0 , data , sizeof(data) ); } int main() { myled = 0; FILE *fp; initHt1632(); unsigned char data[32]; for( int i=0 ; i< sizeof(data) ; i++ ) data[i] = (unsigned char)0; int color = 8*2; for( int i=0 ; i< 8 ; i++ ) { data[i+color] = i*2; data[i+color] = data[i+color] | (unsigned char)(i*2+1)<<4; data[i+color] = data[i+color]; } sendData( 0 , data , sizeof(data) ); char filePath[256] = ""; for( int fileNum = 1 ; fileNum <100 ; fileNum++ ) { sprintf( filePath , "/sd/%02d.bmp" , fileNum ); if( ( fp = fopen(filePath, "r") ) == NULL ) { break; } else { myled = 1; bmpDisp( fp ); fclose( fp ); free( fp ); wait(0.1); } } while(1) { for( int i =0 ; i<16 ; i++ ) { myled = 1; wait(0.5); myled = 0; wait(0.5); } } }