Отлаживался проект до полного завершения на м128, изначально конечно использовать такой контроллер из за двух аппаратных юартов глупо, как замену был остановлен выбор на м162 собственно из за тех же 2 апаратных юартов.
Проект был закончен, вчера, попытались пересобрать на м162.
Как мы и предпологали, заменой одной только строчки
Код
#include "iom128.h"
на
Код
#include "iom162.h"
не обойдётся.
Сначало отказался работать таймер, пришлось коректировать
Код
void timer0_init(void)
{
#ifdef __ATmega128__
TCCR0 = 0x00; //stop //10mSec
ASSR = 0x00; //set async mode
TCNT0 = 0xB9; //set count
OCR0 = 0x47;
TCCR0 = 0x07; //start timer
TIMSK |= 0x01; //ovf T0 active
#endif
#ifdef __ATmega162__
TCCR0 = 0x00; //stop
TCNT0 = 0xB9; //set count
OCR0 = 0x47; //set compare value
TCCR0 = 0x05; //start timer
TIMSK |= 0x02; //timer interrupt sources
#endif
}
А также немного в других частях, в целом весь проект на С то 95% кода неизменно. А вот периферия

Но как мы не старались запустить юарты у нас не получилось

Из возможностей юарта используем только прерывание RX, при этом как только подключается устройство к порту контроллер падает и всё, помогает только передёргивание питания.
Если кто то уже использовал в свои разработках м162 с 2 юартами откликнитесь. Интересует участок инициализации.
С ув.