Personal fork of the library for direct control instead of library control
Dependents: Thesis_Rotating_Platform
Fork of X_NUCLEO_IHM01A1 by
Diff: Components/l6474/l6474_class.h
- Revision:
- 17:35b9ca8c4bd6
- Parent:
- 16:bec7dd79f328
- Child:
- 18:2d6ab2b93685
--- a/Components/l6474/l6474_class.h Mon Dec 14 17:25:36 2015 +0000 +++ b/Components/l6474/l6474_class.h Mon Jan 04 15:54:07 2016 +0000 @@ -97,6 +97,10 @@ */ L6474(PinName flag_irq, PinName standby_reset, PinName direction, PinName pwm, PinName ssel, DevSPI &spi) : StepperMotor(), flag_irq(flag_irq), standby_reset(standby_reset), direction(direction), pwm(pwm), ssel(ssel), dev_spi(spi) { + /* Checking stackability. */ + if (!(numberOfDevices < MAX_NUMBER_OF_DEVICES)) + error("Instantiation of the L6474 component failed: it can be stacked up to %d times.\r\n", MAX_NUMBER_OF_DEVICES); + /* ACTION 4 ----------------------------------------------------------* * Initialize here the component's member variables, one variable per * * line. * @@ -106,8 +110,7 @@ * instance_id = number_of_instances++; * *--------------------------------------------------------------------*/ errorHandlerCallback = 0; - deviceInstance = numberOfDevices; - numberOfDevices++; + deviceInstance = numberOfDevices++; memset(spiTxBursts, 0, L6474_CMD_ARG_MAX_NB_BYTES * MAX_NUMBER_OF_DEVICES * sizeof(uint8_t)); memset(spiRxBursts, 0, L6474_CMD_ARG_MAX_NB_BYTES * MAX_NUMBER_OF_DEVICES * sizeof(uint8_t)); } @@ -155,7 +158,7 @@ * @param id Pointer to an allocated variable to store the ID into. * @retval "0" in case of success, an error code otherwise. */ - virtual int ReadID(uint8_t *id) + virtual int ReadID(uint8_t *id = NULL) { return (int) L6474_ReadID((uint8_t *) id); }