Цитата(AiDream @ Jan 31 2012, 10:15)

На экране lcd появляется какой то значок, только не то, что мне надо.
Вы выдаёте на LCD байт со значением периода в "тиках" таймера следования импульсов, а не последовательность символов, соответствующему этому периоду (естественно, требуется преобразование - самое простое, но не эффективное: использовать процедуру sprintf).
Цитата(AiDream @ Jan 31 2012, 10:15)

посмотрите пожалуйста, кому не трудно.
1. Читаете, почему-то, только младший байт регистра
Код
EdgeR = ICR1L; //запоминаем значение счётчика
.....
EdgeF = ICR1L; //запоминаем значение счётчика
Нужно, примерно так:
Код
EdgeR = ICR1; //запоминаем значение счётчика
.....
EdgeF = ICR1; //запоминаем значение счётчика
2. Таймер считает с частотой 250кГц, а период следования импульсов 0.2 с. Т.е. за максимальный период у Вас получается 50 000 "тиков" таймера... В переменную можно поместить такое число? Нет...
3. Между импульсами таймер может досчитать до максимального значения и сбросить свои счетчики TCNT в ноль, и начать счет дальше. Эту ситуацию (переполнение счетчиков) тоже нужно учитывать/отслеживать (нужна процедура обработки прерывания по переполнению) и учитывать при вычислении периода.