Ну так на вскидку несколько возможных причин:
1. У ATmega8 другой адрес регистра MCUCR. Если он задавался не через файл include к соответствующему контроллеру - то нужно поправить. Многих остальных регистров тоже касается.
2. Регистр TCСR0 у восьмерки содержит только prescaler. За всем остальным нужно ходить в другие регистры.
3. Внешний тактовый генератор и кристалл у ней подключается к ножкам PC7 и PC6. Если на них назначить Output, или Input с подтяжками - будут глюки с частотой. Проверено. Поэтому PortC = 0b00XXXXXX, и DDRC = 0b00XXXXXX, если используется внешний тактовый генератор. Хотя, если UART работает - значит с частотой все в порядке.
4. Вход прерывания первого таймера у него посередине корпуса (DIP), на шестой ноге. А не "с угла" (тоже DIP), как у 16-й. Ну и порт тоже другой - соответственно его надо переиначивать на input с подтяжкой или без - по требованию и подключению приемника.
Это, кстати, еще одна из причин, по которой я не пользуюсь астмой - компилятору ЯВУ указал другой target и все - остальное "оно само думает". А тут сменил контроллер и началось - этот битик не там, а тот не здесь, а этого вообще нет, и надо извращаться как-то еще...
Скрытый текст: