dotmatrixLED animation with ht1632 LED driver.
Dependencies: SDFileSystem mbed
main.cpp@0:62dc51c731b4, 2015-08-22 (annotated)
- Committer:
- kohacraft
- Date:
- Sat Aug 22 04:57:19 2015 +0000
- Revision:
- 0:62dc51c731b4
- Child:
- 1:0c055badeb8f
v0.1;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kohacraft | 0:62dc51c731b4 | 1 | #include "mbed.h" |
kohacraft | 0:62dc51c731b4 | 2 | #include "ht1632.h" |
kohacraft | 0:62dc51c731b4 | 3 | |
kohacraft | 0:62dc51c731b4 | 4 | #include "SDFileSystem.h" |
kohacraft | 0:62dc51c731b4 | 5 | #define SD_MOSI dp2 |
kohacraft | 0:62dc51c731b4 | 6 | #define SD_MISO dp1 |
kohacraft | 0:62dc51c731b4 | 7 | #define SD_SCLK dp6 |
kohacraft | 0:62dc51c731b4 | 8 | #define SD_CS dp13 |
kohacraft | 0:62dc51c731b4 | 9 | SDFileSystem sd(SD_MOSI, SD_MISO, SD_SCLK, SD_CS, "sd"); // mosi, miso, sclk, cs, name (HW modification candidate) |
kohacraft | 0:62dc51c731b4 | 10 | |
kohacraft | 0:62dc51c731b4 | 11 | DigitalOut myled(LED1); |
kohacraft | 0:62dc51c731b4 | 12 | |
kohacraft | 0:62dc51c731b4 | 13 | void bmpDisp( FILE *fp ) |
kohacraft | 0:62dc51c731b4 | 14 | { |
kohacraft | 0:62dc51c731b4 | 15 | unsigned char data[32]; |
kohacraft | 0:62dc51c731b4 | 16 | unsigned char *gData =&data[0],*rData=&data[8],*bData=&data[16]; |
kohacraft | 0:62dc51c731b4 | 17 | |
kohacraft | 0:62dc51c731b4 | 18 | fseek(fp, 54 , SEEK_SET);//bitmap headder throw |
kohacraft | 0:62dc51c731b4 | 19 | for( int j = 7 ; j>=0 ; j-- ) |
kohacraft | 0:62dc51c731b4 | 20 | { |
kohacraft | 0:62dc51c731b4 | 21 | rData[j] = 0; |
kohacraft | 0:62dc51c731b4 | 22 | gData[j] = 0; |
kohacraft | 0:62dc51c731b4 | 23 | bData[j] = 0; |
kohacraft | 0:62dc51c731b4 | 24 | for( int i=0 ; i<8 ; i++ ) |
kohacraft | 0:62dc51c731b4 | 25 | { |
kohacraft | 0:62dc51c731b4 | 26 | bData[j] = bData[j] <<1; |
kohacraft | 0:62dc51c731b4 | 27 | if ( fgetc(fp) > 127 ) |
kohacraft | 0:62dc51c731b4 | 28 | bData[j] = bData[j] | 0x01; |
kohacraft | 0:62dc51c731b4 | 29 | |
kohacraft | 0:62dc51c731b4 | 30 | gData[j] = gData[j]<<1; |
kohacraft | 0:62dc51c731b4 | 31 | if ( fgetc(fp) > 127 ) |
kohacraft | 0:62dc51c731b4 | 32 | gData[j] |= 0x01; |
kohacraft | 0:62dc51c731b4 | 33 | |
kohacraft | 0:62dc51c731b4 | 34 | rData[j] = rData[j]<<1; |
kohacraft | 0:62dc51c731b4 | 35 | if ( fgetc(fp) > 127 ) |
kohacraft | 0:62dc51c731b4 | 36 | rData[j] |= 0x01; |
kohacraft | 0:62dc51c731b4 | 37 | |
kohacraft | 0:62dc51c731b4 | 38 | } |
kohacraft | 0:62dc51c731b4 | 39 | } |
kohacraft | 0:62dc51c731b4 | 40 | sendData( 0 , data , sizeof(data) ); |
kohacraft | 0:62dc51c731b4 | 41 | } |
kohacraft | 0:62dc51c731b4 | 42 | |
kohacraft | 0:62dc51c731b4 | 43 | |
kohacraft | 0:62dc51c731b4 | 44 | int main() { |
kohacraft | 0:62dc51c731b4 | 45 | |
kohacraft | 0:62dc51c731b4 | 46 | myled = 0; |
kohacraft | 0:62dc51c731b4 | 47 | FILE *fp; |
kohacraft | 0:62dc51c731b4 | 48 | initHt1632(); |
kohacraft | 0:62dc51c731b4 | 49 | unsigned char data[32]; |
kohacraft | 0:62dc51c731b4 | 50 | for( int i=0 ; i< sizeof(data) ; i++ ) |
kohacraft | 0:62dc51c731b4 | 51 | data[i] = (unsigned char)0; |
kohacraft | 0:62dc51c731b4 | 52 | |
kohacraft | 0:62dc51c731b4 | 53 | int color = 8*2; |
kohacraft | 0:62dc51c731b4 | 54 | for( int i=0 ; i< 8 ; i++ ) |
kohacraft | 0:62dc51c731b4 | 55 | { |
kohacraft | 0:62dc51c731b4 | 56 | data[i+color] = i*2; |
kohacraft | 0:62dc51c731b4 | 57 | data[i+color] = data[i+color] | (unsigned char)(i*2+1)<<4; |
kohacraft | 0:62dc51c731b4 | 58 | data[i+color] = data[i+color]; |
kohacraft | 0:62dc51c731b4 | 59 | } |
kohacraft | 0:62dc51c731b4 | 60 | sendData( 0 , data , sizeof(data) ); |
kohacraft | 0:62dc51c731b4 | 61 | |
kohacraft | 0:62dc51c731b4 | 62 | char filePath[256] = ""; |
kohacraft | 0:62dc51c731b4 | 63 | |
kohacraft | 0:62dc51c731b4 | 64 | for( int fileNum = 1 ; fileNum <100 ; fileNum++ ) |
kohacraft | 0:62dc51c731b4 | 65 | { |
kohacraft | 0:62dc51c731b4 | 66 | sprintf( filePath , "/sd/%02d.bmp" , fileNum ); |
kohacraft | 0:62dc51c731b4 | 67 | |
kohacraft | 0:62dc51c731b4 | 68 | if( ( fp = fopen(filePath, "r") ) == NULL ) |
kohacraft | 0:62dc51c731b4 | 69 | { |
kohacraft | 0:62dc51c731b4 | 70 | break; |
kohacraft | 0:62dc51c731b4 | 71 | } |
kohacraft | 0:62dc51c731b4 | 72 | else |
kohacraft | 0:62dc51c731b4 | 73 | { |
kohacraft | 0:62dc51c731b4 | 74 | myled = 1; |
kohacraft | 0:62dc51c731b4 | 75 | |
kohacraft | 0:62dc51c731b4 | 76 | bmpDisp( fp ); |
kohacraft | 0:62dc51c731b4 | 77 | fclose( fp ); |
kohacraft | 0:62dc51c731b4 | 78 | free( fp ); |
kohacraft | 0:62dc51c731b4 | 79 | wait(0.1); |
kohacraft | 0:62dc51c731b4 | 80 | |
kohacraft | 0:62dc51c731b4 | 81 | } |
kohacraft | 0:62dc51c731b4 | 82 | } |
kohacraft | 0:62dc51c731b4 | 83 | |
kohacraft | 0:62dc51c731b4 | 84 | |
kohacraft | 0:62dc51c731b4 | 85 | |
kohacraft | 0:62dc51c731b4 | 86 | while(1) { |
kohacraft | 0:62dc51c731b4 | 87 | |
kohacraft | 0:62dc51c731b4 | 88 | for( int i =0 ; i<16 ; i++ ) |
kohacraft | 0:62dc51c731b4 | 89 | { |
kohacraft | 0:62dc51c731b4 | 90 | myled = 1; |
kohacraft | 0:62dc51c731b4 | 91 | wait(0.5); |
kohacraft | 0:62dc51c731b4 | 92 | myled = 0; |
kohacraft | 0:62dc51c731b4 | 93 | wait(0.5); |
kohacraft | 0:62dc51c731b4 | 94 | |
kohacraft | 0:62dc51c731b4 | 95 | } |
kohacraft | 0:62dc51c731b4 | 96 | } |
kohacraft | 0:62dc51c731b4 | 97 | } |