cansat
Dependencies: FatFileSystem SCP1000 mbed
Fork of SDHCFileSystem by
main.cpp
- Committer:
- tomonari
- Date:
- 2014-07-04
- Revision:
- 1:4dfe0d37c606
- Parent:
- 0:90601632692f
File content as of revision 1:4dfe0d37c606:
#include "mbed.h" #include "SCP1000.h" #include "string" #include "SDHCFileSystem.h" DigitalOut myled1(LED1); DigitalOut myled2(LED2); DigitalOut myled4(LED4); Serial xbee(p9,p10); SCP1000 scp1000(p11,p12,p13,p14); SDFileSystem sd(p5, p6, p7, p8, "sd"); // mosi, miso, sclk, cs I2C i2c(p28, p27); // sda, scl const int AQCM0802_addr = 0x7C; unsigned char mode; unsigned char contrast = 0; // 0-63 unsigned char contrastFlag = false; int CGcounter; int FADEcounter; void lcd_cmd(char x) { char data[2]; data[0] = 0x00; // CO = 0,RS = 0 data[1] = x; i2c.write(AQCM0802_addr, data, 2); } void lcd_contdata(char x) { char data[2]; data[0] = 0xC0; //0b11000000 CO = 1, RS = 1 data[1] = x; i2c.write(AQCM0802_addr, data, 2); } void lcd_lastdata(char x) { char data[2]; data[0] = 0x40; //0b11000000 CO = 0, RS = 1 data[1] = x; i2c.write(AQCM0802_addr, data, 2); } void lcd_printStr(const char *s) { while(*s) { if(*(s + 1)) { lcd_contdata(*s); } else { lcd_lastdata(*s); } s++; } } void lcd_printHex(unsigned char num) { lcd_contdata(num); } void lcd_init() { wait(0.04); // LCD initialize lcd_cmd(0x38); // function set lcd_cmd(0x39); // function set lcd_cmd(0x04); // EntryModeSet lcd_cmd(0x14); // interval osc lcd_cmd(0x70 | (contrast & 0xF)); // contrast Low lcd_cmd(0x5C | ((contrast >> 4) & 0x3)); // contast High/icon/power lcd_cmd(0x6C); // follower control wait(0.2); lcd_cmd(0x38); // function set lcd_cmd(0x0C); // Display On lcd_cmd(0x01); // Clear Display wait(0.2); // need additional wait to Clear Display } void lcd_setCursor(unsigned char x,unsigned char y) { lcd_cmd(0x80 | (y * 0x40 + x)); } unsigned char cg[13 * 8] = { }; void setCG(int src,int dst,int len) { lcd_cmd(0x38); lcd_cmd(0x40 + dst); if (src >= 0) { for (int i = 0;i < len;i++) lcd_printHex(cg[src + i]); } else { for (int i = 0;i < len;i++) lcd_printHex(0); } } void setContrast(unsigned char c) { lcd_cmd(0x39); lcd_cmd(0x70 | (c & 0x0f)); // contrast Low lcd_cmd(0x5C | ((c >> 4) & 0x03)); // contast High/icon/power lcd_cmd(0x38); } //main start int main() { char a; char c[256],g[256],u[256],d,sta[6],wake=0,res=1; int pre,j=0,i=0; unsigned long kiatu=0,pre2=0; float kiatusa=0,tmp2,high=0,gosa=0,goukei=0,goukei2=0,heikin=0,heikin2=0,den,vol; double high1=0,high0=0; long presa=0; lcd_init(); setContrast(30); lcd_setCursor(0, 0); lcd_printStr("pre"); lcd_setCursor(0, 1); lcd_printStr("TEST02"); while(1){ if(xbee.readable()==0){ // serial in falt } if(xbee.readable()==1){ // serial in true //old program while(xbee.getc()!='$'); //form can-sat //d=xbee.getc(); pre=0; while((c[pre]=xbee.getc())!='#'){ printf("%c",c[pre]); pre++; } printf("\n"); pre=0; while((g[pre]=xbee.getc())!='@'){ printf("%c",g[pre]); pre++; } printf("\n"); pre=0; while((u[pre]=xbee.getc())!='\n'){ printf("%c",u[pre]); pre++; } printf("\n"); //c[pre]='\0'; /* if(d=='p'){ sscanf(c,"%d",&kiatu); goukei=goukei+kiatu; goukei2=goukei2+pre2; j++; } printf("%d\n",j); if(d=='v'){ sscanf(c,"%f",&den); } if(d=='m'){ strcpy(sta,c); } vol=den*3.3+(den*3.3*2/3); //printf("%s \n",sta); if(j==5){ heikin=goukei/5; heikin2=goukei2/5; high1=(heikin-gosa)/heikin2; high0=pow(high1,0.1902); high=153.8*(tmp2+273.2)*(1.0-high0); printf("H=%lu\n",high); j=0; goukei=0; goukei2=0; }*/ c[0]='\0'; //if(sky.readable()==0){ // } } /* myled4=1; a=xbee.getc(); printf("XBEE=%c\n",a); wait(0.2); myled4=0; wait(0.2); } */ /* FILE *fp = fopen("/sd/pre.csv", "a"); fprintf(fp,"%d\n",scp1000.readPressure()); fclose(fp);*/ } }