dotmatrixLED animation with ht1632 LED driver.

Dependencies:   SDFileSystem mbed

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?

UserRevisionLine numberNew 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 }