Junichi Katsu
/
TextLed
テキストファイルからLEDを光らせるプログラムです。
main.cpp@0:dae1f8b95e84, 2010-10-02 (annotated)
- Committer:
- jksoft913
- Date:
- Sat Oct 02 05:07:19 2010 +0000
- Revision:
- 0:dae1f8b95e84
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jksoft913 | 0:dae1f8b95e84 | 1 | #include "mbed.h" |
jksoft913 | 0:dae1f8b95e84 | 2 | |
jksoft913 | 0:dae1f8b95e84 | 3 | DigitalOut led1(LED1); |
jksoft913 | 0:dae1f8b95e84 | 4 | DigitalOut led2(LED2); |
jksoft913 | 0:dae1f8b95e84 | 5 | DigitalOut led3(LED3); |
jksoft913 | 0:dae1f8b95e84 | 6 | DigitalOut led4(LED4); |
jksoft913 | 0:dae1f8b95e84 | 7 | |
jksoft913 | 0:dae1f8b95e84 | 8 | LocalFileSystem local("local"); |
jksoft913 | 0:dae1f8b95e84 | 9 | |
jksoft913 | 0:dae1f8b95e84 | 10 | char LedPtn[256][4]; |
jksoft913 | 0:dae1f8b95e84 | 11 | int LedPtn_num = 0; |
jksoft913 | 0:dae1f8b95e84 | 12 | int WaitTime = 0; |
jksoft913 | 0:dae1f8b95e84 | 13 | |
jksoft913 | 0:dae1f8b95e84 | 14 | unsigned char GetFileLine( FILE *stm , char *str ) { |
jksoft913 | 0:dae1f8b95e84 | 15 | char count = 0; |
jksoft913 | 0:dae1f8b95e84 | 16 | |
jksoft913 | 0:dae1f8b95e84 | 17 | if(fread(&str[count], 1,1,stm) > 0) { |
jksoft913 | 0:dae1f8b95e84 | 18 | count++; |
jksoft913 | 0:dae1f8b95e84 | 19 | while( (fread(&str[count], 1,1,stm) > 0) |
jksoft913 | 0:dae1f8b95e84 | 20 | &&(str[count] != '\n') |
jksoft913 | 0:dae1f8b95e84 | 21 | &&(count < 512)) { |
jksoft913 | 0:dae1f8b95e84 | 22 | |
jksoft913 | 0:dae1f8b95e84 | 23 | count++; |
jksoft913 | 0:dae1f8b95e84 | 24 | |
jksoft913 | 0:dae1f8b95e84 | 25 | } |
jksoft913 | 0:dae1f8b95e84 | 26 | } |
jksoft913 | 0:dae1f8b95e84 | 27 | str[count] = '\0'; |
jksoft913 | 0:dae1f8b95e84 | 28 | |
jksoft913 | 0:dae1f8b95e84 | 29 | return(count); |
jksoft913 | 0:dae1f8b95e84 | 30 | } |
jksoft913 | 0:dae1f8b95e84 | 31 | |
jksoft913 | 0:dae1f8b95e84 | 32 | int main() { |
jksoft913 | 0:dae1f8b95e84 | 33 | FILE *stm; |
jksoft913 | 0:dae1f8b95e84 | 34 | char tmp[512]; |
jksoft913 | 0:dae1f8b95e84 | 35 | int count = 0; |
jksoft913 | 0:dae1f8b95e84 | 36 | |
jksoft913 | 0:dae1f8b95e84 | 37 | // Get File |
jksoft913 | 0:dae1f8b95e84 | 38 | stm = fopen("/local/led.txt","r"); |
jksoft913 | 0:dae1f8b95e84 | 39 | |
jksoft913 | 0:dae1f8b95e84 | 40 | if( stm == NULL ) { |
jksoft913 | 0:dae1f8b95e84 | 41 | // File read err |
jksoft913 | 0:dae1f8b95e84 | 42 | return(-1); |
jksoft913 | 0:dae1f8b95e84 | 43 | } |
jksoft913 | 0:dae1f8b95e84 | 44 | |
jksoft913 | 0:dae1f8b95e84 | 45 | // Wait time read |
jksoft913 | 0:dae1f8b95e84 | 46 | if( GetFileLine( stm , tmp ) == 0 ) { |
jksoft913 | 0:dae1f8b95e84 | 47 | // read err |
jksoft913 | 0:dae1f8b95e84 | 48 | return(-1); |
jksoft913 | 0:dae1f8b95e84 | 49 | } |
jksoft913 | 0:dae1f8b95e84 | 50 | if( sscanf( tmp , "%d",&WaitTime ) == 0 ) { |
jksoft913 | 0:dae1f8b95e84 | 51 | //read err |
jksoft913 | 0:dae1f8b95e84 | 52 | return(-1); |
jksoft913 | 0:dae1f8b95e84 | 53 | } |
jksoft913 | 0:dae1f8b95e84 | 54 | printf( "Get! Wait time : %d[ms]\r\n", WaitTime ); |
jksoft913 | 0:dae1f8b95e84 | 55 | |
jksoft913 | 0:dae1f8b95e84 | 56 | // LED flash pattern read |
jksoft913 | 0:dae1f8b95e84 | 57 | while( (GetFileLine( stm , tmp ) != 0) && (LedPtn_num < 256) ) { |
jksoft913 | 0:dae1f8b95e84 | 58 | char *pled = LedPtn[LedPtn_num]; |
jksoft913 | 0:dae1f8b95e84 | 59 | if( sscanf( tmp , "%d,%d,%d,%d",&pled[0],&pled[1],&pled[2],&pled[3]) == 0) |
jksoft913 | 0:dae1f8b95e84 | 60 | { |
jksoft913 | 0:dae1f8b95e84 | 61 | break; |
jksoft913 | 0:dae1f8b95e84 | 62 | } |
jksoft913 | 0:dae1f8b95e84 | 63 | printf( "Get!Led flash pattern : [%d][%d][%d][%d]\r\n", pled[0],pled[1],pled[2],pled[3]); |
jksoft913 | 0:dae1f8b95e84 | 64 | LedPtn_num++; |
jksoft913 | 0:dae1f8b95e84 | 65 | } |
jksoft913 | 0:dae1f8b95e84 | 66 | fclose(stm); |
jksoft913 | 0:dae1f8b95e84 | 67 | |
jksoft913 | 0:dae1f8b95e84 | 68 | while(1) { |
jksoft913 | 0:dae1f8b95e84 | 69 | led1 = LedPtn[count][0]; |
jksoft913 | 0:dae1f8b95e84 | 70 | led2 = LedPtn[count][1]; |
jksoft913 | 0:dae1f8b95e84 | 71 | led3 = LedPtn[count][2]; |
jksoft913 | 0:dae1f8b95e84 | 72 | led4 = LedPtn[count][3]; |
jksoft913 | 0:dae1f8b95e84 | 73 | wait_ms(WaitTime); |
jksoft913 | 0:dae1f8b95e84 | 74 | count++; |
jksoft913 | 0:dae1f8b95e84 | 75 | if( count >= LedPtn_num ) { |
jksoft913 | 0:dae1f8b95e84 | 76 | count = 0; |
jksoft913 | 0:dae1f8b95e84 | 77 | } |
jksoft913 | 0:dae1f8b95e84 | 78 | } |
jksoft913 | 0:dae1f8b95e84 | 79 | } |