Improved UART Timeout

Major:
- Improved UART Timeout: Apparently, the UART data Rx/Tx is quite unreliable (especially under motor load) leading to very often out-of-sync issues. This change allows to reset the DMA more often, leading to a faster re-sync of the UART transmission and thus avoiding UART timeout

Minor:
- added #define MPU_SENSOR_ENABLE to allow to enable/disable the MPU6050 sensor and save code size if the sensors is not needed
- fixed the orientation in the Processing sketch
- updated ReadMe
This commit is contained in:
EmanuelFeru
2020-06-01 20:26:20 +02:00
parent c703b30930
commit e9d74bea29
10 changed files with 40 additions and 20 deletions

View File

@@ -42,6 +42,7 @@
/* ==================================== SETTINGS MPU-6050 ==================================== */
#define MPU_SENSOR_ENABLE // [-] Enable flag for MPU-6050 sensor. Comment-out this flag to Disable the MPU sensor and reduce code size.
#define MPU_DMP_ENABLE // [-] Enable flag for MPU-6050 DMP (Digital Motion Processing) functionality.
#define MPU_DEFAULT_HZ 20 // [Hz] Default MPU frequecy: must be between 1Hz and 200Hz.
#define TEMP_READ_MS 500 // [ms] Temperature read time interval
@@ -68,7 +69,7 @@
#endif
#define USART_MAIN_BAUD 38400 // [bit/s] MAIN Serial Tx/Rx baud rate
#define SERIAL_START_FRAME 0xABCD // [-] Start frame definition for reliable serial communication
#define SERIAL_TIMEOUT 500 // [-] Numer of wrong received data for Serial timeout detection
#define SERIAL_TIMEOUT 800 // [-] Numer of wrong received data for Serial timeout detection
/* ==================================== SETTINGS AUX ==================================== */

View File

@@ -23,6 +23,7 @@
// Define to prevent recursive inclusion
#ifndef MPU6050_H
#define MPU6050_H
#ifdef MPU_SENSOR_ENABLE
#include <stdint.h>
#include "defines.h"
@@ -142,5 +143,5 @@ void mpu_android_orient_func(unsigned char orientation);
void mpu_handle_input(char c);
void mpu_print_to_console(void);
#endif
#endif // MPU_SENSOR_ENABLE
#endif // MPU6050_H

View File

@@ -23,6 +23,7 @@
// Define to prevent recursive inclusion
#ifndef MPU6050_DMP_H
#define MPU6050_DMP_H
#ifdef MPU_SENSOR_ENABLE
#include <stdint.h>
@@ -102,6 +103,6 @@ int dmp_enable_gyro_cal(unsigned char enable);
int dmp_read_fifo(short *gyro, short *accel, long *quat,
unsigned long *timestamp, short *sensors, unsigned char *more);
#endif
#endif // MPU_SENSOR_ENABLE
#endif // MPU6050_DMP_H

View File

@@ -5,6 +5,7 @@
*/
#ifndef DMPKEY_H__
#define DMPKEY_H__
#ifdef MPU_SENSOR_ENABLE
#define KEY_CFG_25 (0)
@@ -491,5 +492,5 @@ typedef struct {
#define DINBC6 0xc6
#endif // MPU_SENSOR_ENABLE
#endif // DMPKEY_H__

View File

@@ -5,6 +5,7 @@
*/
#ifndef DMPMAP_H
#define DMPMAP_H
#ifdef MPU_SENSOR_ENABLE
#ifdef __cplusplus
extern "C"
@@ -261,4 +262,6 @@ extern "C"
#ifdef __cplusplus
}
#endif
#endif // MPU_SENSOR_ENABLE
#endif // DMPMAP_H