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: VL53L0X_Condensed
Revision 16:6a5a62b00ed1, committed 2019-03-25
- Comitter:
- sepp_nepp
- Date:
- Mon Mar 25 20:47:33 2019 +0000
- Parent:
- 15:e0fbd2ddd2a9
- Commit message:
- That compiles now
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Sun Mar 24 22:25:09 2019 +0000
+++ b/main.cpp Mon Mar 25 20:47:33 2019 +0000
@@ -64,7 +64,7 @@
/* Simple main function */
int main() {
- uint32_t distance;
+ uint32_t distance, NewDist, OldDist;
int status;
char NoteNr, Octave, ScaleNote;
char OldKey, NewKey;
@@ -73,19 +73,20 @@
/* Init all sensors with default params */
tof1.init_sensor(VL53L0X_DEFAULT_ADDRESS);
status = tof1.start_measurement(range_continuous_polling, NULL);
+ status = status | tof1.VL53L0X_set_measurement_timing_budget_us(100000);
if (status)
{ printf("\n\r--- Error Initializing the TOF sensor ---\n\r");
//while(1) { }; // consider to hang up the device here
}
printf("\n\r--- Read Init of TOF ---\n\r"); ;
- OldKey = 0x00; // Remembers the old key, start with value thats normallz unused
+ OldKey = 0x00; // Remembers the old key, start with value thats normally unused
midi_uart.baud( 31250 );
midi_uart.format( 8, SerialBase::None, 2);
wait(0.1); // make sure all is settled
- midi_uart.putc(0xB0); // Midi Channel 0, Channel Mode Message
- midi_uart.putc(123); // Byte 2: All Notes Off
- midi_uart.putc(0x00); // Byte 3: obligatory zero
+ midi_uart.putc(0xB0); // Midi Channel 0, Channel Mode Message
+ midi_uart.putc(123); // Byte 2: All Notes Off
+ midi_uart.putc(0x00); // Byte 3: obligatory zero
while(1)
@@ -93,14 +94,15 @@
if ( (status == VL53L0X_ERROR_NONE) && (p_ranging_measurement_data.RangeStatus == 0) )
{ // we have a valid range.
- distance = p_ranging_measurement_data.RangeMilliMeter;
+ NewDist = p_ranging_measurement_data.RangeMilliMeter;
// printf("%6ld\r", distance); // Distance is ~1700 when looking at the ceiling, so approximately 1 per mm. A really usable distance range is only up to 1270.
- distance = (int) (distance / 10) + 20; // scaling factor 10 between distance and key note
+ distance = (int) ( NewDist / 30 + OldDist / 20 ) + 20; // scaling factor 10 between distance and key note
if (distance >= 0x7F) NoteNr = 0x00; // cap the New Key Value on the top, beyond 127 we discard the note as 'no Note'
else NoteNr = distance; // pass through everything below; remember: distance is uint, so no negatives can occur
Octave = (int) (NoteNr / 7);
ScaleNote = NoteNr - (Octave * 7);
- NewKey = Octave * 12 + MiShebera[ScaleNote];
+ NewKey = Octave * 12 + TsigaMoll[ScaleNote];
+ OldDist = NewDist;
}
else
{ // printf(" --\r");