Цитата(defunct @ May 9 2012, 03:09)

объявление массива во флеш гарантированно обезопасит от непредсказуемых последствий выхода индекса за границы массива.
Требую подробностей...
Может я о чём-то не в курсе

ИМХО Принципиально нет никакой разницы откуда читать из-за пределов массива, что из ОЗУ что из ПЗУ.
В контексте AVR можно притянуть за уши, что прочитали мы из SFR что-нибудь ну потеряли байт информации например из UDR и это при условии что уарт на полинге построен и что? Программа-то как содержала багу так и будет её содержать.
Цитата(defunct @ May 9 2012, 03:09)

Вернет один в один с тем что и оригинальная функция.
Поэтому я написал что стоит ПРИМЕРНО так писать. Чтобы дать толчёк в каком направлении искать багу человеку, а тут развели дискуссию...
Цитата(maksimp @ May 8 2012, 10:28)

И вы добавили взятие остатка (операция %) на процессоре без аппаратного деления.
Это просто ужасно... Вы видели исходный код? Не коробит?
Вот когда у него всё заработает и он поймёт что нужна оптимизация т.к. проваливается либо по скорости либо по объёму тогда можно будет и заменить один символ % на три строчки кода. На первом этапе это даже скорее вредно чем полезно.
А ещё из из идеологических советов тут будет более правильно аргумент функции сделать беззнаковым...