![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Publish_MAPLEminiA
Dependencies: LSM303DLHC RX8025 SDFileSystem TextLCD TouchSense mbed
Fork of MAPLEminiA by
main.cpp
- Committer:
- jk1lot
- Date:
- 2016-06-05
- Revision:
- 0:06047ad53505
- Child:
- 1:707a0a314781
File content as of revision 0:06047ad53505:
#include "mbed.h" #include "TextLCD.h" #include "RX8025.h" #include "LSM303DLH.h" #include "SDFileSystem.h" #include "TouchSense.h" I2C i2c(p28,p27); // SDA, SCL TextLCD_I2C_N lcd(&i2c, ST7032_SA, TextLCD::LCD16x2, NC, TextLCD::ST7032_3V3); RX8025 rtc(i2c); LSM303DLH compass(p28, p27); SDFileSystem sd(p5, p6, p7, p22, "sd"); TouchSense sw1(p15),sw2(p16),sw3(p17),sw4(p18); class MmASpeaker : public DigitalOut { public: MmASpeaker(PinName p) : DigitalOut(p) {} void beep(int32_t hz=1000, int32_t ms=100) { for(int i=0; i<hz*ms/1000; i++) { write(1); wait_us(1000*1000/hz/2); write(0); wait_us(1000*1000/hz/2); } } }; MmASpeaker speaker(p20); DigitalOut myled(LED1); int main() { lcd.cls(); lcd.printf("Hello World!\n"); /* SDカードのテストをするときにはコメントを外してね mkdir("/sd/mydir", 0777); FILE *fp = fopen("/sd/mydir/sdtest.txt", "w"); if(fp == NULL) { error("Could not open file for write\n"); } fprintf(fp, "Hello fun SD Card World!"); fclose(fp); */ Times t={0,0,0,0,0,0,0}; rtc.setTIME(t); compass.setOffset(0.00, 0.00, 0.00); compass.setScale(1.00, 1.00, 1.00); sw1.calibration(); sw2.calibration(); sw3.calibration(); sw4.calibration(); speaker.beep(); while(1) { Times t=rtc.getTIME(); float hdg = compass.heading(); bool s1=sw1.sense(),s2=sw2.sense(),s3=sw3.sense(),s4=sw4.sense(); if(s1) speaker.beep(200); else if(s2) speaker.beep(400); else if(s3) speaker.beep(800); else if(s4) speaker.beep(1600); lcd.locate(0,0); lcd.printf("%d %d %d %d ",s1,s2,s3,s4); lcd.locate(0,1); lcd.printf("%02X:%02X:%02X %.2f", t.hours, t.minutes, t.seconds, hdg); myled = 1; wait(0.2); myled = 0; wait(0.2); } }