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.
Diff: m3pi.cpp
- Revision:
- 1:5523d6d1feec
- Parent:
- 0:56320ef879a6
- Child:
- 2:26bf14f4dc84
diff -r 56320ef879a6 -r 5523d6d1feec m3pi.cpp
--- a/m3pi.cpp Tue Apr 04 08:08:16 2017 +0000
+++ b/m3pi.cpp Wed Apr 05 10:25:42 2017 +0000
@@ -48,27 +48,35 @@
void m3pi::get_raw_values(unsigned int *values)
{
- _serial->putc(0x86);
+ char vals[10]; // array to receive 10 byte return message
+ _serial->putc(0x86); // send command
- for (int i=0; i<5; i++) {
- char lsb = _serial->getc();
- char msb = _serial->getc();
- unsigned int value = (msb<<8 | lsb);
- values[i]=value;
+ int n=0;
+ while ( _serial->readable() ) { // keep looping while data on rx line
+ vals[n] = _serial->getc(); // read into array
+ n++; // increment index
+ }
+
+ for(int i=0; i<5; i++) { // construct the 2-byte values
+ values[i] = (vals[2*i+1] << 8) | vals[2*i];
}
}
void m3pi::get_calibrated_values(unsigned int *values)
{
- _serial->putc(0x87);
+ char vals[10]; // array to receive 10 byte return message
+ _serial->putc(0x87); // send command
- for (int i=0; i<5; i++) {
- char lsb = _serial->getc();
- char msb = _serial->getc();
- unsigned int value = (msb<<8 | lsb);
- values[i]=value;
+ int n=0;
+ while ( _serial->readable() ) { // keep looping while data on rx line
+ vals[n] = _serial->getc(); // read into array
+ n++; // increment index
}
+ for(int i=0; i<5; i++) { // construct the 2-byte values
+ values[i] = (vals[2*i+1] << 8) | vals[2*i];
+ }
+
}
float m3pi::get_trimpot_value()
@@ -135,7 +143,7 @@
lcd_goto_xy(0,1);
lcd_print("Sensors ",8);
- spin_right(0.1);
+ spin_right(0.2);
char led_val = 0;
Timer timer;
@@ -149,7 +157,7 @@
}
_serial->putc(0xB4);
- wait_ms(5);
+ wait_ms(25);
}
timer.stop();
@@ -159,9 +167,7 @@
lcd_clear();
lcd_goto_xy(0,0);
- lcd_print("Place on",8);
- lcd_goto_xy(0,1);
- lcd_print(" line ",8);
+ lcd_print(" Done ",8);
while( read_button() ) {
// loop while waiting for button to be press