| 62 |
62 |
{
|
| 63 |
63 |
apalDbgAssert(tlc5947 != NULL);
|
| 64 |
64 |
|
| 65 |
|
// set the output value of the GPIO pin depending on the activation property
|
| 66 |
|
return apalControlGpioSet(tlc5947->blank_gpio, blank == TLC5947_LLD_BLANK_ENABLE ? APAL_GPIO_ON : APAL_GPIO_OFF);
|
|
65 |
// BLANK signal is optional
|
|
66 |
if (tlc5947->blank_gpio == NULL) {
|
|
67 |
return APAL_STATUS_WARNING;
|
|
68 |
} else {
|
|
69 |
// set the output value of the GPIO pin depending on the activation property
|
|
70 |
return apalControlGpioSet(tlc5947->blank_gpio, blank == TLC5947_LLD_BLANK_ENABLE ? APAL_GPIO_ON : APAL_GPIO_OFF);
|
|
71 |
}
|
| 67 |
72 |
}
|
| 68 |
73 |
|
| 69 |
74 |
/**
|
| ... | ... | |
| 77 |
82 |
apalDbgAssert(tlc5947 != NULL);
|
| 78 |
83 |
apalDbgAssert(blank != NULL);
|
| 79 |
84 |
|
| 80 |
|
apalControlGpioState_t gpio_state;
|
| 81 |
|
apalExitStatus_t status = apalControlGpioGet(tlc5947->blank_gpio, &gpio_state);
|
| 82 |
|
*blank = gpio_state == APAL_GPIO_ON ? TLC5947_LLD_BLANK_ENABLE : TLC5947_LLD_BLANK_DISABLE;
|
| 83 |
|
return status;
|
|
85 |
// BLANK signal is optional
|
|
86 |
if (tlc5947->blank_gpio == NULL) {
|
|
87 |
return APAL_STATUS_WARNING;
|
|
88 |
} else {
|
|
89 |
apalControlGpioState_t gpio_state;
|
|
90 |
apalExitStatus_t status = apalControlGpioGet(tlc5947->blank_gpio, &gpio_state);
|
|
91 |
*blank = gpio_state == APAL_GPIO_ON ? TLC5947_LLD_BLANK_ENABLE : TLC5947_LLD_BLANK_DISABLE;
|
|
92 |
return status;
|
|
93 |
}
|
| 84 |
94 |
}
|
| 85 |
95 |
|
| 86 |
96 |
/**
|
| ... | ... | |
| 93 |
103 |
{
|
| 94 |
104 |
apalDbgAssert(tlc5947 != NULL);
|
| 95 |
105 |
|
| 96 |
|
apalExitStatus_t status = apalControlGpioSet(tlc5947->xlat_gpio, APAL_GPIO_ON);
|
| 97 |
|
// The XLAT signal has to be active for at least 30 ns.
|
| 98 |
|
// It is assumed that that these function calls satisfy this requirement even without explicit delay.
|
| 99 |
|
if (apalControlGpioSet(tlc5947->xlat_gpio, APAL_GPIO_OFF) == APAL_STATUS_OK && status == APAL_STATUS_OK) {
|
| 100 |
|
return APAL_STATUS_OK;
|
|
106 |
// XLAT signal GPIO is optional
|
|
107 |
if (tlc5947->xlat_gpio == NULL) {
|
|
108 |
return APAL_STATUS_WARNING;
|
| 101 |
109 |
} else {
|
| 102 |
|
return APAL_STATUS_ERROR;
|
|
110 |
apalExitStatus_t status = apalGpioWrite(tlc5947->xlat_gpio->gpio, (tlc5947->xlat_gpio->meta.edge == APAL_GPIO_EDGE_RISING) ? APAL_GPIO_LOW : APAL_GPIO_HIGH);
|
|
111 |
// The XLAT signal has to be active for at least 30 ns.
|
|
112 |
// It is assumed that that these function calls satisfy this requirement even without explicit delay.
|
|
113 |
status |= apalGpioWrite(tlc5947->xlat_gpio->gpio, (tlc5947->xlat_gpio->meta.edge == APAL_GPIO_EDGE_RISING) ? APAL_GPIO_HIGH : APAL_GPIO_LOW);
|
|
114 |
return status;
|
| 103 |
115 |
}
|
| 104 |
116 |
}
|
| 105 |
117 |
|