Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
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 }
Generated on Sat Jul 23 2022 02:36:01 by
1.7.2