4elovek37, в качестве идеи....
[по тексту "эффект" = массив данных одной последовательности изменений яркости светодиодов]
На мой взгляд, отличить яркость светодиода 255 от 254 практически невозможно. Если согласны, можно "зарезервировать" число 255 (первое в "тройке байт" + два байта со значениями, к примеру, номер эффекта, скорость/время "шага") как признак начала данных эффекта. Если данные эффекта начинаются с 255, 255, 255 - "предыдущий эффект был последним".
В таком случае не нужно будет каждый раз после записи эффектов в EEPROM вносить изменения в программу (указывать адреса эффектов "вручную").
При старте программы "прошерстить" данные и запомнить адреса и количество эффектов - не проблема. А может быть, это и в "real-time" будет проще делать...
---------------
Что касается подготовки файла для записи нескольких эффектов:
1. Для каждого эффекта подготавливаете свой *.bin (!!!) файл.
2. В WinHex открываете *.bin файлы всех эффектов.
3. Переходите на файл
второго эффекта, выделяете все данные и копируете в буфер обмена.
4. Переходите на файл
первого эффекта (это будет файл "сборки эффектов") и, сняв выделение блока данных (если надо, (Esc)), переходите на последний байт (Ctrl+End).
5. Нажимаете Ctrl+V. Появится вопрос (перевод мой): "Вы хотите вставить данные из буфера обмена в конец файла (после адреса ххххх)?"
6. Отвечаете "Yes". Появится предупреждение: "Данные из буфера обмена будут размещены с адреса ххххх. Размер файла увеличится".
7.
Если нужно, записываете этот адрес как адрес первого байта добавляемого эффекта!!!
8. Отвечаете "OK".
9. При необходимости, аналогично добавляете данные других эффектов. Если надо, записываете адрес последнего байта и, на всякий случай, сохраняете файл как *.bin.
10. Выделяете все данные и далее Edit > Convert Block > Binary -> Intel Hex и сохраняете файл с расширением *.hex.
---------------
Это, конечно, при условии, что массив начинается с 0x00
Если специально не добавите "лишние" данные - первый массив всегда будет начинаться с адреса 0000h.
---------------
P.S.
Извиняюсь. В предыдущем посте я не совсем корректно сказал про адрес последнего байта.
Правильно: Не забудьте посмотреть в WinHex адрес последнего байта
до Edit > Convert Block > Binary -> Intel Hex!