Merge pull request #4608 from thinkyhead/rc_more_twibus_tweaks

Additional details for I2C_SLAVE_ADDRESS
This commit is contained in:
Scott Lahteine 2016-08-15 19:37:03 -07:00 committed by GitHub
commit 464d594450
22 changed files with 36 additions and 20 deletions

View File

@ -209,7 +209,7 @@ script:
# #
- restore_configs - restore_configs
- opt_enable_adv BEZIER_CURVE_SUPPORT EXPERIMENTAL_I2CBUS - opt_enable_adv BEZIER_CURVE_SUPPORT EXPERIMENTAL_I2CBUS
- opt_set_adv I2C_SLAVE_ADDRESS 1 - opt_set_adv I2C_SLAVE_ADDRESS 63
- build_marlin - build_marlin
# #
# Enable COREXY # Enable COREXY

View File

@ -795,6 +795,6 @@ const unsigned int dropsegments = 5; //everything with less than this number of
// @section i2cbus // @section i2cbus
//#define EXPERIMENTAL_I2CBUS //#define EXPERIMENTAL_I2CBUS
#define I2C_SLAVE_ADDRESS 0 // Set non-zero to act as a slave #define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
#endif // CONFIGURATION_ADV_H #endif // CONFIGURATION_ADV_H

View File

@ -5294,7 +5294,7 @@ inline void gcode_M121() { endstops.enable_globally(false); }
} }
} }
#endif //EXPERIMENTAL_I2CBUS #endif // EXPERIMENTAL_I2CBUS
/** /**
* M200: Set filament diameter and set E axis units to cubic units * M200: Set filament diameter and set E axis units to cubic units

View File

@ -747,3 +747,14 @@
#if ENABLED(EMERGENCY_PARSER) && defined(USBCON) #if ENABLED(EMERGENCY_PARSER) && defined(USBCON)
#error "EMERGENCY_PARSER does not work on boards with AT90USB processors (USBCON)." #error "EMERGENCY_PARSER does not work on boards with AT90USB processors (USBCON)."
#endif #endif
/**
* I2C bus
*/
#if ENABLED(EXPERIMENTAL_I2CBUS) && I2C_SLAVE_ADDRESS > 0
#if I2C_SLAVE_ADDRESS < 8
#error "I2C_SLAVE_ADDRESS can't be less than 8. (Addresses 0 - 7 are reserved.)"
#elif I2C_SLAVE_ADDRESS > 127
#error "I2C_SLAVE_ADDRESS can't be over 127. (Only 7 bits allowed.)"
#endif
#endif

View File

@ -795,6 +795,6 @@ const unsigned int dropsegments = 5; //everything with less than this number of
// @section i2cbus // @section i2cbus
//#define EXPERIMENTAL_I2CBUS //#define EXPERIMENTAL_I2CBUS
#define I2C_SLAVE_ADDRESS 0 // Set non-zero to act as a slave #define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
#endif // CONFIGURATION_ADV_H #endif // CONFIGURATION_ADV_H

View File

@ -795,6 +795,6 @@ const unsigned int dropsegments = 5; //everything with less than this number of
// @section i2cbus // @section i2cbus
//#define EXPERIMENTAL_I2CBUS //#define EXPERIMENTAL_I2CBUS
#define I2C_SLAVE_ADDRESS 0 // Set non-zero to act as a slave #define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
#endif // CONFIGURATION_ADV_H #endif // CONFIGURATION_ADV_H

View File

@ -795,6 +795,6 @@ const unsigned int dropsegments = 5; //everything with less than this number of
// @section i2cbus // @section i2cbus
//#define EXPERIMENTAL_I2CBUS //#define EXPERIMENTAL_I2CBUS
#define I2C_SLAVE_ADDRESS 0 // Set non-zero to act as a slave #define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
#endif // CONFIGURATION_ADV_H #endif // CONFIGURATION_ADV_H

View File

@ -795,6 +795,6 @@ const unsigned int dropsegments = 5; //everything with less than this number of
// @section i2cbus // @section i2cbus
//#define EXPERIMENTAL_I2CBUS //#define EXPERIMENTAL_I2CBUS
#define I2C_SLAVE_ADDRESS 0 // Set non-zero to act as a slave #define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
#endif // CONFIGURATION_ADV_H #endif // CONFIGURATION_ADV_H

View File

@ -801,6 +801,6 @@ const unsigned int dropsegments = 2; //everything with less than this number of
// @section i2cbus // @section i2cbus
//#define EXPERIMENTAL_I2CBUS //#define EXPERIMENTAL_I2CBUS
#define I2C_SLAVE_ADDRESS 0 // Set non-zero to act as a slave #define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
#endif // CONFIGURATION_ADV_H #endif // CONFIGURATION_ADV_H

View File

@ -795,6 +795,6 @@ const unsigned int dropsegments = 5; //everything with less than this number of
// @section i2cbus // @section i2cbus
//#define EXPERIMENTAL_I2CBUS //#define EXPERIMENTAL_I2CBUS
#define I2C_SLAVE_ADDRESS 0 // Set non-zero to act as a slave #define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
#endif // CONFIGURATION_ADV_H #endif // CONFIGURATION_ADV_H

View File

@ -795,6 +795,6 @@ const unsigned int dropsegments = 5; //everything with less than this number of
// @section i2cbus // @section i2cbus
//#define EXPERIMENTAL_I2CBUS //#define EXPERIMENTAL_I2CBUS
#define I2C_SLAVE_ADDRESS 0 // Set non-zero to act as a slave #define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
#endif // CONFIGURATION_ADV_H #endif // CONFIGURATION_ADV_H

View File

@ -795,6 +795,6 @@ const unsigned int dropsegments = 5; //everything with less than this number of
// @section i2cbus // @section i2cbus
//#define EXPERIMENTAL_I2CBUS //#define EXPERIMENTAL_I2CBUS
#define I2C_SLAVE_ADDRESS 0 // Set non-zero to act as a slave #define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
#endif // CONFIGURATION_ADV_H #endif // CONFIGURATION_ADV_H

View File

@ -803,6 +803,6 @@ const unsigned int dropsegments = 5; //everything with less than this number of
// @section i2cbus // @section i2cbus
//#define EXPERIMENTAL_I2CBUS //#define EXPERIMENTAL_I2CBUS
#define I2C_SLAVE_ADDRESS 0 // Set non-zero to act as a slave #define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
#endif // CONFIGURATION_ADV_H #endif // CONFIGURATION_ADV_H

View File

@ -795,6 +795,6 @@ const unsigned int dropsegments = 5; //everything with less than this number of
// @section i2cbus // @section i2cbus
//#define EXPERIMENTAL_I2CBUS //#define EXPERIMENTAL_I2CBUS
#define I2C_SLAVE_ADDRESS 0 // Set non-zero to act as a slave #define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
#endif // CONFIGURATION_ADV_H #endif // CONFIGURATION_ADV_H

View File

@ -797,6 +797,6 @@ const unsigned int dropsegments = 5; //everything with less than this number of
// @section i2cbus // @section i2cbus
//#define EXPERIMENTAL_I2CBUS //#define EXPERIMENTAL_I2CBUS
#define I2C_SLAVE_ADDRESS 0 // Set non-zero to act as a slave #define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
#endif // CONFIGURATION_ADV_H #endif // CONFIGURATION_ADV_H

View File

@ -797,6 +797,6 @@ const unsigned int dropsegments = 5; //everything with less than this number of
// @section i2cbus // @section i2cbus
//#define EXPERIMENTAL_I2CBUS //#define EXPERIMENTAL_I2CBUS
#define I2C_SLAVE_ADDRESS 0 // Set non-zero to act as a slave #define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
#endif // CONFIGURATION_ADV_H #endif // CONFIGURATION_ADV_H

View File

@ -796,6 +796,6 @@ const unsigned int dropsegments = 5; //everything with less than this number of
// @section i2cbus // @section i2cbus
//#define EXPERIMENTAL_I2CBUS //#define EXPERIMENTAL_I2CBUS
#define I2C_SLAVE_ADDRESS 0 // Set non-zero to act as a slave #define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
#endif // CONFIGURATION_ADV_H #endif // CONFIGURATION_ADV_H

View File

@ -801,6 +801,6 @@ const unsigned int dropsegments = 5; //everything with less than this number of
// @section i2cbus // @section i2cbus
//#define EXPERIMENTAL_I2CBUS //#define EXPERIMENTAL_I2CBUS
#define I2C_SLAVE_ADDRESS 0 // Set non-zero to act as a slave #define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
#endif // CONFIGURATION_ADV_H #endif // CONFIGURATION_ADV_H

View File

@ -797,6 +797,6 @@ const unsigned int dropsegments = 5; //everything with less than this number of
// @section i2cbus // @section i2cbus
//#define EXPERIMENTAL_I2CBUS //#define EXPERIMENTAL_I2CBUS
#define I2C_SLAVE_ADDRESS 0 // Set non-zero to act as a slave #define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
#endif // CONFIGURATION_ADV_H #endif // CONFIGURATION_ADV_H

View File

@ -795,6 +795,6 @@ const unsigned int dropsegments = 5; //everything with less than this number of
// @section i2cbus // @section i2cbus
//#define EXPERIMENTAL_I2CBUS //#define EXPERIMENTAL_I2CBUS
#define I2C_SLAVE_ADDRESS 0 // Set non-zero to act as a slave #define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
#endif // CONFIGURATION_ADV_H #endif // CONFIGURATION_ADV_H

View File

@ -795,6 +795,6 @@ const unsigned int dropsegments = 5; //everything with less than this number of
// @section i2cbus // @section i2cbus
//#define EXPERIMENTAL_I2CBUS //#define EXPERIMENTAL_I2CBUS
#define I2C_SLAVE_ADDRESS 0 // Set non-zero to act as a slave #define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
#endif // CONFIGURATION_ADV_H #endif // CONFIGURATION_ADV_H

View File

@ -43,6 +43,11 @@ void TWIBus::reset() {
} }
void TWIBus::address(const uint8_t adr) { void TWIBus::address(const uint8_t adr) {
if (adr < 8 || adr > 127) {
SERIAL_ECHO_START;
SERIAL_ECHOLNPGM("Bad I2C address (8-127)");
}
this->addr = adr; this->addr = adr;
#if ENABLED(DEBUG_TWIBUS) #if ENABLED(DEBUG_TWIBUS)