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: libmDot-dev-mbed5-deprecated ISL29011
Fork of mdot-examples by
Revision 22:388f97cf422a, committed 2018-01-10
- Comitter:
- SDesign2018
- Date:
- Wed Jan 10 16:57:41 2018 +0000
- Parent:
- 21:d96ef380a5d3
- Child:
- 23:9c95ba021bdc
- Commit message:
- Changed to do periodic reading from trigger
Changed in this revision
| copy_main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/copy_main.cpp Wed Jan 10 16:35:54 2018 +0000
+++ b/copy_main.cpp Wed Jan 10 16:57:41 2018 +0000
@@ -111,7 +111,7 @@
*/
bool takeTemperature = false; // Trigger temperature reading
bool takeAccelerometer = false; // Trigger accelerometer reading
-bool periodicReadings = false; // Trigger reading both accelerometer and temperature
+bool periodicReadingTrigger = false; // Trigger reading both accelerometer and temperature
/*
* Prototype functions
@@ -141,7 +141,7 @@
takeAccelerometer = true; // Take accelerometer because something happened
}
-void takePeriodicReading(void){
+void takePeriodicReadingTicker(void){
pc.printf("Periodic Reading\n\r");
/*
* Taking accelerometer data
@@ -179,6 +179,10 @@
pc.printf("Celsius: 0x%x\n\r", convertedTempValue);
}
+void takePeriodicReading(void){
+ periodicReadingTrigger = true;
+}
+
////////////////////////////////////////////////////////////////////////////////
/* _
____ ___ ____ _(_)___
@@ -313,58 +317,61 @@
ADT7410Initialize();
ADXL372Initialize();
- //Periodic.attach(&takePeriodicReading,3);
+ Periodic.attach(&takePeriodicReadingTicker,1);
while(1){
// Create a vector of uint8_t elements to be sent later
+
std::vector<uint8_t> tx_data;
- pc.printf("Regular looped reading ");
- /*
- * Taking accelerometer data
- */
- regAddress = 0x08; // This is the register address for XData
- accelValues = accelerometerI2CRead(regAddress);
- Xmsb = *(accelValues + 0);
- Xlsb = *(accelValues + 1);
- Ymsb = *(accelValues + 2);
- Ylsb = *(accelValues + 3);
- Zmsb = *(accelValues + 4);
- Zlsb = *(accelValues + 5);
-
- XData = (Xmsb << 8 | Xlsb) >> 4; // Combine two bytes into short int, remove last 4 flag bits
- YData = (Ymsb << 8 | Ylsb) >> 4;
- ZData = (Zmsb << 8 | Zlsb) >> 4;
-
- XData = twosComplementConversion(XData);
- YData = twosComplementConversion(YData);
- ZData = twosComplementConversion(ZData);
-
- /*
- * Taking temperature data
- */
- regAddress = 0x00;
- rawTempValues = ADT7410Read(regAddress);
- convertedTempValue = ((*(rawTempValues + 0) << 8) | *(rawTempValues + 1)) >> 3; // Combine the two bytes into
- // a short int variable(16 bits), remove last 3 bits
- if(convertedTempValue & 0x8000){
-
- }
- pc.printf("Accelerometer::: ");
- pc.printf("X: 0x%x | Y: 0x%x | Z: 0x%x\n\r", XData, YData, ZData);
- pc.printf("Temperature::: ");
- pc.printf("Celsius: 0x%x\n\r", convertedTempValue);
-
- tx_data.push_back((convertedTempValue >> 8) & 0xFF);
- tx_data.push_back(convertedTempValue & 0xFF);
- logInfo("Temperautre: %lu [0x%04X]", convertedTempValue, convertedTempValue);
- send_data(tx_data);
+ if(takePeriodicReading)
+ {
+ pc.printf("Regular periodic reading ");
+ /*
+ * Taking accelerometer data
+ */
+ regAddress = 0x08; // This is the register address for XData
+ accelValues = accelerometerI2CRead(regAddress);
+ Xmsb = *(accelValues + 0);
+ Xlsb = *(accelValues + 1);
+ Ymsb = *(accelValues + 2);
+ Ylsb = *(accelValues + 3);
+ Zmsb = *(accelValues + 4);
+ Zlsb = *(accelValues + 5);
+
+ XData = (Xmsb << 8 | Xlsb) >> 4; // Combine two bytes into short int, remove last 4 flag bits
+ YData = (Ymsb << 8 | Ylsb) >> 4;
+ ZData = (Zmsb << 8 | Zlsb) >> 4;
+
+ XData = twosComplementConversion(XData);
+ YData = twosComplementConversion(YData);
+ ZData = twosComplementConversion(ZData);
+
+ /*
+ * Taking temperature data
+ */
+ regAddress = 0x00;
+ rawTempValues = ADT7410Read(regAddress);
+ convertedTempValue = ((*(rawTempValues + 0) << 8) | *(rawTempValues + 1)) >> 3; // Combine the two bytes into
+ // a short int variable(16 bits), remove last 3 bits
+ pc.printf("Accelerometer::: ");
+ pc.printf("X: 0x%x | Y: 0x%x | Z: 0x%x\n\r", XData, YData, ZData);
+ pc.printf("Temperature::: ");
+ pc.printf("Celsius: 0x%x\n\r", convertedTempValue);
+
+
+
+ tx_data.push_back((convertedTempValue >> 8) & 0xFF);
+ tx_data.push_back(convertedTempValue & 0xFF);
+ logInfo("Temperautre: %lu [0x%04X]", convertedTempValue, convertedTempValue);
+ send_data(tx_data);
+ }
if(takeAccelerometer || takeAccelerometer){
pc.printf("INTERRUPTEDDDDDDDD: ");
- if(takeAccelerometer) pc.printf("Temperature triggered\n\r");
- else if(takeAccelerometer) pc.printf("AccelerometerTriggered\n\r");
+ if(takeAccelerometer) pc.printf("Temperature triggered!!!!!!!!!!!!\n\r");
+ else if(takeAccelerometer) pc.printf("AccelerometerTriggered!!!!!!!!!!!!!\n\r");
for(int i = 0; i < BUFFER_SIZE; ++i){
/*
@@ -402,13 +409,16 @@
pc.printf("Temperature::: ");
pc.printf("Celsius: 0x%x\n\r", temperatureBuffer[i]);
}
- wait(0.2);
+ //wait(0.2);
takeAccelerometer = false; // Flip back to no trigger
takeTemperature = false; // Flip back to no trigger
+ periodicReadingTrigger = false; // Flip back to no trigger
}
- wait(1);
+
+
+ //wait(1);
}
return 0;
