Igor Skochinsky / Mbed 2 deprecated DCSS504

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "MMCx12xM.h"
00003 
00004 I2C i2c(p9, p10); // sda, scl
00005 DigitalOut memsic_power(p8);
00006 
00007 MMCx12xM memsic(i2c);
00008 
00009 PwmOut led1(LED1);
00010 PwmOut led2(LED2);
00011 PwmOut led3(LED3);
00012 PwmOut led4(LED4);
00013 
00014 int main()
00015 {
00016     printf("MMC2120M demo\n");
00017     memsic_power = 1;
00018     bool ok = memsic.coil_set();
00019     printf("Set: %d\n", ok);
00020     
00021     /*int values[2];
00022     for (;;)
00023     {    
00024         ok = memsic.read_raw_values(values);
00025         printf("ok: %d, x: %d, y: %d\n", ok, values[0], values[1]);
00026         wait(2);
00027     }*/
00028     
00029     printf("Starting calibration. Turn the sensor in all possible directions for 10 seconds.\n");    
00030     memsic.calibrate_begin();
00031     int cal_count = 0;
00032     while (1)
00033     {
00034         memsic.calibrate_step();
00035         cal_count++;
00036         wait_ms(100);
00037         if ( cal_count > 100 )
00038             break;
00039     }    
00040     memsic.calibrate_end();
00041     //printf("%d samples were used for calibration\n", cal_count);
00042     float fvalues[2];
00043     for (;;)
00044     {    
00045         ok = memsic.read_values(fvalues);
00046         printf("ok: %d, x: %f, y: %f\n", ok, fvalues[0], fvalues[1]);
00047         led1 = fvalues[0] > 0 ?  fvalues[0] : 0;
00048         led2 = fvalues[1] > 0 ?  fvalues[1] : 0;
00049         led3 = fvalues[0] < 0 ? -fvalues[0] : 0;
00050         led4 = fvalues[1] < 0 ? -fvalues[1] : 0;
00051         wait_ms(100);
00052     }
00053 }