Compare commits
2 Commits
8c6460a1d1
...
v1.2.0
Author | SHA1 | Date | |
---|---|---|---|
196398ac6f | |||
dfebb15213 |
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
.DS_Store
|
@@ -9,7 +9,7 @@
|
|||||||
## Note
|
## Note
|
||||||
|
|
||||||
1. Enable interrupt support only if input GPIO's are used.
|
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 PORTD4 - PORTD7 are acceptable!
|
2. All the INT GPIO's on the extenders must be connected to the one GPIO on AVR. Only PORTD0 - PORTD7 are acceptable!
|
||||||
3. The input GPIO's are always pullup to the power supply.
|
3. The input GPIO's are always pullup to the power supply.
|
||||||
|
|
||||||
## Dependencies
|
## Dependencies
|
||||||
|
@@ -133,7 +133,7 @@ extern "C"
|
|||||||
/**
|
/**
|
||||||
* @brief PCF8574 ISR handler.
|
* @brief PCF8574 ISR handler.
|
||||||
*/
|
*/
|
||||||
void zh_avr_pcf8574_isr_handler(void);
|
BaseType_t zh_avr_pcf8574_isr_handler(void);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
@@ -1 +1 @@
|
|||||||
1.0.0
|
1.2.0
|
@@ -81,7 +81,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 != 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->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->task_priority > tskIDLE_PRIORITY && config->stack_size >= 124, AVR_ERR_INVALID_ARG);
|
||||||
ZH_ERROR_CHECK(config->interrupt_gpio == 0xFF || config->interrupt_gpio == PORTD4 || config->interrupt_gpio == PORTD5 || config->interrupt_gpio == PORTD6 || config->interrupt_gpio == PORTD7, AVR_ERR_INVALID_ARG);
|
ZH_ERROR_CHECK(config->interrupt_gpio == 0xFF || (config->interrupt_gpio >= PORTD0 && config->interrupt_gpio <= PORTD7), AVR_ERR_INVALID_ARG);
|
||||||
return AVR_OK;
|
return AVR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -129,17 +129,14 @@ static avr_err_t _zh_avr_pcf8574_configure_interrupts(const zh_avr_pcf8574_init_
|
|||||||
return AVR_OK;
|
return AVR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
void zh_avr_pcf8574_isr_handler(void)
|
BaseType_t zh_avr_pcf8574_isr_handler(void)
|
||||||
{
|
{
|
||||||
|
BaseType_t xHigherPriorityTaskWoken = pdFALSE;
|
||||||
if ((PIND & (1 << _interrupt_gpio)) == 0)
|
if ((PIND & (1 << _interrupt_gpio)) == 0)
|
||||||
{
|
{
|
||||||
BaseType_t xHigherPriorityTaskWoken = pdFALSE;
|
|
||||||
xSemaphoreGiveFromISR(_interrupt_semaphore, &xHigherPriorityTaskWoken);
|
xSemaphoreGiveFromISR(_interrupt_semaphore, &xHigherPriorityTaskWoken);
|
||||||
if (xHigherPriorityTaskWoken == pdTRUE)
|
|
||||||
{
|
|
||||||
portYIELD();
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
return xHigherPriorityTaskWoken;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void _zh_avr_pcf8574_isr_processing_task(void *pvParameter)
|
static void _zh_avr_pcf8574_isr_processing_task(void *pvParameter)
|
||||||
|
Reference in New Issue
Block a user