My controllers use two LEDs to indicate controller status.
H1 – DMX Activity flashes to indicate DMX data has been received and processed.
H2 РPower / Error is on to indicating Power is ON and there are no errors.  H2 flashes various patterns to indicate the type of error.

The change of a relevant channel is indicated by a flashing green LED.

flashing DMX data has been received and processed. Normal Operation.

The red LED repeats error codes until cleared:

Pattern Error Solution
flashing There is no signal connected to the transceiver. Connect the transceiver to the DMX bus.
double flashing The received signal is not DMX. Try swapping D+ and D- at the DMX connector.
triple flashing Future Functionality. N/A.
constant on DMX received and no errors.  Normal Operation

This error indicator is easily implemented with the following code:
void indicate(void) {
static uint8_t count;
if (++count >= 10)
count = 0; // reset every 5 secs
if(Blink ==0) CLEAR(H1);
else if (count <= Blink)
TOGGLE(H1); // toggle LED
}

Each error condition is given an unique Odd number.
The LED Flash period is set by an timer overflow.