kk
Dependencies: SDFileSystem mbed
Fork of cansat_kk by
main.cpp
- Committer:
- mosukro
- Date:
- 2016-02-29
- Revision:
- 1:fa44a6246bcc
- Parent:
- 0:649fc30be6ec
- Child:
- 2:be9046fb5859
File content as of revision 1:fa44a6246bcc:
#include "mbed.h" #include "SDFileSystem.h" Ticker timer; SDFileSystem sd(p5, p6, p7, p8, "sd"); // the pinout on the mbed Cool Components workshop board Serial gps(p28, p27); // tx, rx Serial pc(USBTX, USBRX); // tx, rx PwmOut moterl(p21);//左モーター PwmOut moterr(p22);//右モーター DigitalOut led1(LED1); DigitalOut fet3(p23);//ニクロム線 DigitalOut led2(LED2); DigitalOut led3(LED3); DigitalOut led4(LED4); DigitalOut janpa1(p19);//パラシュートの開きを検知 DigitalIn janpa2(p20);//パラシュートの開きを検知 char gps_data[256]; float longitude,latitude,gpstime,knot,angle; int i=0; void gps_rx()//GPSデータ受信割り込み { gps_data[i] = gps.getc(); if( gps_data[i] == '$' ) { //$から受信データを保持する gps_data[0] = '$'; i = 1; } else if( gps_data[i-1] == '\r' && gps_data[i] == '\n' ) { // 改行コードまでのデータを解析する gps_data[i+1] = '\0'; if(memcmp(gps_data, "$GPRMC",6) == 0) { // $GPRMCで始ってればデータを分けて格納 sscanf(gps_data,"$GPRMC,%f,A,%f,N,%f,E,%f,%f",&gpstime,&longitude,&latitude,&knot,&angle); } //データをSDに書き込み mkdir("/sd/mydir", 0777); FILE *fp = fopen("/sd/mydir/gpsdata.txt", "a"); if(fp == NULL) { error("Could not open file for write\n"); } fprintf(fp,"%s \n",gps_data); fclose(fp); //PCにデータ送信 pc.printf("%s \n",gps_data); i = 0; } else { //改行コードが来るまでカウントを続ける i++; if(i==255){ pc.printf("*** Error! ***\n"); } } } void move() { //動作 } int main() { gps.baud(9600); gps.attach(gps_rx, Serial::RxIrq);//GPS割り込み while(1) { move(); } }