dotmatrixLED animation with ht1632 LED driver.
Dependencies: SDFileSystem mbed
main.cpp@2:f28ec2298aa6, 2015-08-23 (annotated)
- Committer:
- kohacraft
- Date:
- Sun Aug 23 22:55:49 2015 +0000
- Revision:
- 2:f28ec2298aa6
- Parent:
- 1:0c055badeb8f
ver1.0
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 | 1:0c055badeb8f | 48 | int fileNumMax = 100; |
kohacraft | 1:0c055badeb8f | 49 | float waitTime = 0.1; |
kohacraft | 0:62dc51c731b4 | 50 | |
kohacraft | 1:0c055badeb8f | 51 | //LEDモジュールの初期化 |
kohacraft | 1:0c055badeb8f | 52 | initHt1632(); |
kohacraft | 0:62dc51c731b4 | 53 | |
kohacraft | 1:0c055badeb8f | 54 | //表示のwait時間を読み込み |
kohacraft | 1:0c055badeb8f | 55 | if( ( fp = fopen("/sd/loop.txt", "r") ) != NULL ) |
kohacraft | 1:0c055badeb8f | 56 | { |
kohacraft | 1:0c055badeb8f | 57 | fscanf( fp, "%d,%f" , &fileNumMax , &waitTime ); |
kohacraft | 1:0c055badeb8f | 58 | fclose(fp); |
kohacraft | 1:0c055badeb8f | 59 | free(fp); |
kohacraft | 1:0c055badeb8f | 60 | } |
kohacraft | 1:0c055badeb8f | 61 | else |
kohacraft | 0:62dc51c731b4 | 62 | { |
kohacraft | 1:0c055badeb8f | 63 | fileNumMax = 99; |
kohacraft | 1:0c055badeb8f | 64 | waitTime = 0.1; |
kohacraft | 1:0c055badeb8f | 65 | } |
kohacraft | 1:0c055badeb8f | 66 | |
kohacraft | 1:0c055badeb8f | 67 | myled = 1; |
kohacraft | 1:0c055badeb8f | 68 | //01.bmpから99.bmpまでを表示を繰り返す |
kohacraft | 1:0c055badeb8f | 69 | char filePath[256] = ""; |
kohacraft | 1:0c055badeb8f | 70 | while(1) |
kohacraft | 1:0c055badeb8f | 71 | { |
kohacraft | 1:0c055badeb8f | 72 | for( int fileNum = 1 ; fileNum <= fileNumMax ; fileNum++ ) |
kohacraft | 0:62dc51c731b4 | 73 | { |
kohacraft | 1:0c055badeb8f | 74 | sprintf( filePath , "/sd/%02d.bmp" , fileNum ); |
kohacraft | 1:0c055badeb8f | 75 | |
kohacraft | 1:0c055badeb8f | 76 | if( ( fp = fopen(filePath, "r") ) == NULL ) |
kohacraft | 1:0c055badeb8f | 77 | { |
kohacraft | 1:0c055badeb8f | 78 | free( fp ); |
kohacraft | 1:0c055badeb8f | 79 | break; |
kohacraft | 1:0c055badeb8f | 80 | } |
kohacraft | 1:0c055badeb8f | 81 | else |
kohacraft | 1:0c055badeb8f | 82 | { |
kohacraft | 1:0c055badeb8f | 83 | myled = ~myled; |
kohacraft | 1:0c055badeb8f | 84 | |
kohacraft | 1:0c055badeb8f | 85 | bmpDisp( fp ); |
kohacraft | 1:0c055badeb8f | 86 | fclose( fp ); |
kohacraft | 1:0c055badeb8f | 87 | free( fp ); |
kohacraft | 1:0c055badeb8f | 88 | wait(waitTime); |
kohacraft | 1:0c055badeb8f | 89 | |
kohacraft | 1:0c055badeb8f | 90 | } |
kohacraft | 0:62dc51c731b4 | 91 | } |
kohacraft | 0:62dc51c731b4 | 92 | } |
kohacraft | 1:0c055badeb8f | 93 | } |