Совершенно дикая ситуация. Проект на Atmega88A. При старте конверсии АЦП (запись бита ADSC в регистр ADCSRA) окончание преобразования приводит к рестарту программы, т.е. выбрасывает на первую сроку main. В реальном железе выглядит как постоянные перезапуски прошивки, в Студии, как написал, уходит на первую строку main(ProgrammCounter = 0) Отловил, что сброс программного счетчика на ноль происходит при выставлении флага ADIF. Т.е. закончилось преобразование АЦП -- и улетел
Понимаю, что лопатить за меня мой код никто не будет. Но хоть направление может кто подскажет?
Вот так выглядит инициализация АЦП. Ничего вроде необычного
void DAC_init (void)
{
DACON|=(1<<DAEN)//включаем
|(1<<DAOE)//вывод на DA2
|(1<<DALA)//Для того, чтобы легко работать только с 8 битами, есть возможность
//отрегулировать входное значение влево. Таким образом, достаточно
//написать DACH, чтобы обновить значение DAC.стр262.
|(0<<DAATE);//автоматически обновлять вход ЦАП при записи значения в регистр DACH.
Enable_vcc_vref(); // опорное напряжение питания
}