テキストファイルからLEDを光らせるプログラムです。

Dependencies:   mbed

Committer:
jksoft913
Date:
Sat Oct 02 05:07:19 2010 +0000
Revision:
0:dae1f8b95e84

        

Who changed what in which revision?

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