В atmega64L столкнулся с такой проблемой.
Программу пишу на Си в AVRStudio под WINAVR. Текст программы такой:
int main(void)
{
Init_ports();
PORTD = 0xC7;
while(1);
}
void Init_ports(void)
{
DDRD = 0x38;
PORTD = 0xCF;
return;
}
В результате после программирования и включения устройства напржение на PORTD.3 = 1,
а не 0 как должно быть. Создается впечатление что микроконтроллер не выходит из подпрограммы.
Хотя в симуляторе все работает. Если текст подпрограммы вынести в главную функцию, то все работает правильно.
В чем может быть проблема? Может в настройках WINAVR?