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.
Dependencies: BLE_API PinDetect mbed-src-bmd-200
main.cpp
00001 #include "MMA845x.h" 00002 #include "PinDetect.h" 00003 #include "mbed.h" 00004 00005 Serial pc(USBTX, USBRX); 00006 00007 I2C accel(I2C_SDA0, I2C_SCL0); 00008 00009 AnalogIn ambientLight(p6); 00010 00011 PinDetect user_btn_1 ( p11, PullUp ); 00012 PinDetect user_btn_2 ( p0, PullUp ); 00013 00014 //InterruptIn int2(p0); 00015 00016 //InterruptIn user_btn_1(p11); 00017 00018 PwmOut ledR(LED1); 00019 PwmOut ledG(LED3); 00020 PwmOut ledB(LED2); 00021 00022 int accel_int_mode = 0; 00023 int opMode = 0; 00024 int opModeMax = 3; 00025 00026 00027 //MMA845x(I2C &i2c, InterruptIn &int1, InterruptIn &int2, MMA845x_SA0 const i2c_addr); 00028 MMA845x accel_0(accel, p4, p23, MMA845x::SA0_VSS ); 00029 //MMA845x accel_0(accel, int1, int2, MMA845x::SA0_VSS); 00030 00031 #ifdef USE_EEPROM 00032 SPI spi1(SPI_PSELMOSI1, SPI_PSELMISO1, SPI_PSELSCK1); 00033 DigitalOut spi_cs(SPI_PSELSS1); 00034 #endif 00035 00036 void toggleLED(PwmOut *led) 00037 { 00038 if (led->read() < 0.001) 00039 { 00040 printf("led on"); 00041 led->write(.2); 00042 } 00043 else 00044 { 00045 printf("led off, %f",led->read()); 00046 led->write(0); 00047 } 00048 } 00049 00050 void btn_1_press(void) 00051 { 00052 if (++opMode == opModeMax) {opMode = 0;} 00053 printf("OpMode = %d\n\r",opMode); 00054 switch ( opMode ) 00055 { 00056 case 0: 00057 accel_0.disable(); 00058 ledR = 0.2; 00059 ledG = 0; 00060 ledB = 0; 00061 00062 break; 00063 case 1: 00064 ledR = 0; 00065 ledG = 0.2; 00066 ledB = 0; 00067 accel_0.enablePulseMode(); 00068 break; 00069 default: 00070 ledR = 0; 00071 ledG = 0; 00072 ledB = 0.2; 00073 accel_0.enableDataReadyMode(); 00074 break; 00075 } 00076 } 00077 00078 void btn_2_press(void) 00079 { 00080 //ledR = !ledR; 00081 //printf("Button 2 Pressed!\n\r"); 00082 switch ( opMode ) 00083 { 00084 case 0: 00085 break; 00086 case 2: 00087 if (accel_int_mode == 0) 00088 { 00089 accel_int_mode = 1; 00090 } 00091 else 00092 { 00093 accel_int_mode = 0; 00094 } 00095 accel_0.setIntMode(accel_int_mode); 00096 break; 00097 default: 00098 break; 00099 //do nothing 00100 } 00101 } 00102 00103 void zTap(void) 00104 { 00105 switch ( opMode ) 00106 { 00107 case 0: 00108 break; 00109 case 1: 00110 toggleLED(&ledB); 00111 break; 00112 default: 00113 toggleLED(&ledG); 00114 break; 00115 } 00116 00117 } 00118 void SysTick_Handler (void) 00119 { 00120 toggleLED(&ledB); 00121 } 00122 00123 int main() 00124 { 00125 pc.baud(115200); 00126 //int readings[3] = {0, 0, 0}; 00127 ledR.period_ms(10); 00128 ledG.period_ms(10); 00129 ledB.period_ms(10); 00130 00131 ledR = .1; 00132 ledG = .1; 00133 ledB = .1; 00134 00135 00136 //SysTick_Config(1000); 00137 //SysTick_Enable(); 00138 //systick.attach_us(&systimer, 2500); 00139 00140 user_btn_1.setAssertValue( 0 ); 00141 user_btn_2.setAssertValue( 0 ); 00142 user_btn_1.attach_asserted( &btn_1_press ); 00143 //user_btn_1.mode( PullUp ); 00144 //user_btn_1.rise( &btn_1_press ); 00145 user_btn_2.attach_asserted( &btn_2_press ); 00146 user_btn_1.setSampleFrequency( 20000 ); 00147 user_btn_2.setSampleFrequency( 20000 ); // Defaults to 20ms. 00148 00149 accel_0.attachZAxisPulse( &zTap ); 00150 00151 //int adr = 0x3A; 00152 char data[2]; 00153 char cmd = 0x0D; 00154 accel.write(0x3A, &cmd, 1, true); 00155 accel.read(0x3A, &data[0], 1); 00156 //printf("\n\r\n\rWho am I?: 0x%.2X\n\r",data[0]); 00157 00158 //accel_0.enableMotionMode(); 00159 //accel_0.registerDump(); 00160 accel_0.enableDataReadyMode(); 00161 00162 00163 //-------------------- 00164 double x = accel_0.getX(); 00165 double y = accel_0.getY(); 00166 double z = accel_0.getZ(); 00167 printf("X: %d, Y: %d, Z: %d\n\r", x , y, z); 00168 00169 00170 while (50) { 00171 sleep(); 00172 } 00173 00174 }
Generated on Wed Jul 20 2022 08:27:04 by
