feat: added all gpio support
This commit is contained in:
@@ -9,7 +9,7 @@
|
||||
## Note
|
||||
|
||||
1. Enable interrupt support only if input GPIO's are used.
|
||||
2. All the INT GPIO's on the extenders must be connected to the one GPIO on AVR. Only PORTD0 - PORTD7 are acceptable!
|
||||
2. All the INT GPIO's on the extenders must be connected to the one GPIO on AVR.
|
||||
3. The input GPIO's are always pullup to the power supply.
|
||||
|
||||
## Dependencies
|
||||
|
@@ -44,7 +44,7 @@ extern "C"
|
||||
bool p6_gpio_work_mode; // Expander GPIO P6 work mode. True for input, false for output.
|
||||
bool p7_gpio_work_mode; // Expander GPIO P7 work mode. True for input, false for output.
|
||||
uint8_t interrupt_gpio; // Interrupt GPIO. @attention Must be same for all PCF8574 expanders.
|
||||
uint8_t interrupt_port; // Interrupt port. @attention Must be same for all PCF8574 expanders.
|
||||
uint8_t interrupt_port; // Interrupt port.
|
||||
} zh_avr_pcf8574_init_config_t;
|
||||
|
||||
typedef struct // PCF8574 expander handle.
|
||||
|
@@ -82,7 +82,7 @@ static avr_err_t _zh_avr_pcf8574_validate_config(const zh_avr_pcf8574_init_confi
|
||||
ZH_ERROR_CHECK(config != NULL, AVR_ERR_INVALID_ARG);
|
||||
ZH_ERROR_CHECK((config->i2c_address >= 0x20 && config->i2c_address <= 0x27) || (config->i2c_address >= 0x38 && config->i2c_address <= 0x3F), AVR_ERR_INVALID_ARG);
|
||||
ZH_ERROR_CHECK(config->task_priority > tskIDLE_PRIORITY && config->stack_size >= 124, AVR_ERR_INVALID_ARG);
|
||||
ZH_ERROR_CHECK(config->interrupt_gpio == 0xFF || (config->interrupt_gpio >= PORTD0 && config->interrupt_gpio <= PORTD7), AVR_ERR_INVALID_ARG);
|
||||
ZH_ERROR_CHECK(config->interrupt_gpio == 0xFF || (config->interrupt_gpio >= 0 && config->interrupt_gpio <= 7), AVR_ERR_INVALID_ARG);
|
||||
if (config->interrupt_gpio != 0xFF)
|
||||
{
|
||||
ZH_ERROR_CHECK(config->interrupt_port >= AVR_PORTB && config->interrupt_port <= AVR_PORTD, AVR_ERR_INVALID_ARG);
|
||||
|
Reference in New Issue
Block a user