hi
Dependencies: ST_INTERFACES X_NUCLEO_COMMON
Fork of X_NUCLEO_IHM02A1 by
Revision 10:aa68441705b2, committed 2016-01-04
- Comitter:
- Davidroid
- Date:
- Mon Jan 04 16:10:54 2016 +0000
- Parent:
- 9:d70452d7a1e1
- Child:
- 11:1aca63b2f034
- Commit message:
- + Added check on expansion board's stackability.
Changed in this revision
--- a/BSP/x_nucleo_ihm02a1_class.cpp Fri Dec 11 17:23:31 2015 +0000
+++ b/BSP/x_nucleo_ihm02a1_class.cpp Mon Jan 04 16:10:54 2016 +0000
@@ -52,9 +52,9 @@
#include "x_nucleo_ihm02a1_class.h"
-/* Static variables ----------------------------------------------------------*/
+/* Variables -----------------------------------------------------------------*/
-/* Number of instantiated expansion boards. */
+/* Number of expansion boards. */
uint8_t X_NUCLEO_IHM02A1::number_of_boards = 0;
@@ -72,6 +72,11 @@
*/
X_NUCLEO_IHM02A1::X_NUCLEO_IHM02A1(MICROSTEPPING_MOTOR_InitTypeDef *init_0, MICROSTEPPING_MOTOR_InitTypeDef *init_1, PinName flag_irq, PinName busy_irq, PinName standby_reset, PinName ssel, DevSPI *spi) : dev_spi(spi)
{
+ /* Checking stackability. */
+ if (!(number_of_boards < EXPBRD_MOUNTED_NR_MAX))
+ error("Instantiation of the X_NUCLEO_IHM02A1 expansion board failed: it can be stacked up to %d times.\r\n", EXPBRD_MOUNTED_NR_MAX);
+ X_NUCLEO_IHM02A1_Id = number_of_boards++;
+
/* SPI communication. */
if (dev_spi == NULL)
dev_spi = new DevSPI(X_NUCLEO_IHM02A1_PIN_SPI_MOSI, X_NUCLEO_IHM02A1_PIN_SPI_MISO, X_NUCLEO_IHM02A1_PIN_SPI_SCLK);
@@ -84,7 +89,6 @@
* component_1 = new COMPONENT_1(COMPONENT_1_SPI_SSEL, *dev_spi); *
* component_2 = new COMPONENT_2(COMPONENT_2_SPI_SSEL, *dev_spi); *
*------------------------------------------------------------------------*/
- X_NUCLEO_IHM02A1_Id = number_of_boards++;
components[0] = l6470_0 = new L6470(flag_irq, busy_irq, standby_reset, ssel, *dev_spi);
components[1] = l6470_1 = new L6470(flag_irq, busy_irq, standby_reset, ssel, *dev_spi);
@@ -92,7 +96,7 @@
init_components[0] = init_0;
init_components[1] = init_1;
if (!Init())
- error("Initialization of the X_NUCLEO_IHM02A1 expansion board failed.\n");
+ error("Initialization of the X_NUCLEO_IHM02A1 expansion board failed.\r\n");
}
/**
@@ -109,6 +113,11 @@
*/
X_NUCLEO_IHM02A1::X_NUCLEO_IHM02A1(MICROSTEPPING_MOTOR_InitTypeDef *init_0, MICROSTEPPING_MOTOR_InitTypeDef *init_1, PinName flag_irq, PinName busy_irq, PinName standby_reset, PinName ssel, PinName mosi, PinName miso, PinName sclk)
{
+ /* Checking stackability. */
+ if (!(number_of_boards < EXPBRD_MOUNTED_NR_MAX))
+ error("Instantiation of the X_NUCLEO_IHM02A1 expansion board failed: it can be stacked up to %d times.\r\n", EXPBRD_MOUNTED_NR_MAX);
+ X_NUCLEO_IHM02A1_Id = number_of_boards++;
+
/* SPI communication. */
dev_spi = new DevSPI(mosi, miso, sclk);
@@ -120,7 +129,6 @@
* component_1 = new COMPONENT_1(COMPONENT_1_SPI_SSEL, *dev_spi); *
* component_2 = new COMPONENT_2(COMPONENT_2_SPI_SSEL, *dev_spi); *
*------------------------------------------------------------------------*/
- X_NUCLEO_IHM02A1_Id = number_of_boards++;
components[0] = l6470_0 = new L6470(flag_irq, busy_irq, standby_reset, ssel, *dev_spi);
components[1] = l6470_1 = new L6470(flag_irq, busy_irq, standby_reset, ssel, *dev_spi);
@@ -128,7 +136,7 @@
init_components[0] = init_0;
init_components[1] = init_1;
if (!Init())
- error("Initialization of the X_NUCLEO_IHM02A1 expansion board failed.\n");
+ error("Initialization of the X_NUCLEO_IHM02A1 expansion board failed.\r\n");
}
/**
--- a/BSP/x_nucleo_ihm02a1_class.h Fri Dec 11 17:23:31 2015 +0000
+++ b/BSP/x_nucleo_ihm02a1_class.h Mon Jan 04 16:10:54 2016 +0000
@@ -203,13 +203,15 @@
/* Results of prepared actions. */
uint32_t results[L6470DAISYCHAINSIZE];
- /* Data. */
- /* ACTION 11 -------------------------------------------------------------*
- * Declare here the component's data, one variable per line. *
+ /* ACTION 6 --------------------------------------------------------------*
+ * Declare here the component's static and non-static data, one variable *
+ * per line. *
* *
* Example: *
- * uint8_t ExpansionBoard_Id; *
+ * int instance_id; *
+ * static int number_of_instances; *
*------------------------------------------------------------------------*/
+ /* Data. */
uint8_t X_NUCLEO_IHM02A1_Id;
/* Static data. */
