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 |
|