Цитата(Arvenen @ Jun 5 2008, 22:26)

Вот этого обещать не могу... Я там столько раз уже пробовала все поменять... Постаралась вернуть все назад, на всякий случай, вот код на си и соответствующий ему hex: ...
И... спасибо вам огромнейшее! Это моя вторая поделка с микроконтроллером... Я правда не знаю, с какого боку можно подойти к решению возникшей проблемы...
Как мне кажется, проблема в прерываниях от АЦП. Согласно хекса ацп установлен в режим непрерывного преобразования, прерывания от ацп разрешены, а программа их обработки в конечном счете совершает переход на адрес 0х000. как я понял, явно обработка прерываний в данном исходнике на С не описана, хотя я могу ошибаться (С я не знаю), тем не менее она происходит. Вполне возможно, что прерывания от АЦП приходят раньше чем от таймера, поэтому таймер просто не успевает вывести МК из режима Слип. Т. Е. из режима слип МК выводят прерывания АЦП, затем таймер переинициализуруется и цикл повторяется.
Как вариант выяснения так ли это, нужно попробовать временно исключить из исходника действия с АЦП и посмотреть выводит ли таймер из режима СЛИП.
Как вариант нужно в исходнике на С изменить строку ADCSRA=0x8F; на ADCSRA=0x83; что запретит прерывания от АЦП, но позволит отслеживать флаг прерываний полингом. В общем я не знаю как описать это на С, но попробуйте предложенный вариант.
Кстати, как я понимаю симптомы того, что МК не выходит из СЛИПА проявляются в отсутствии мигания светодиода, который мигает с малой частотой.
Если это так то проблема скорее всего именна та, что я описал.
Вообще если программа не сложная легче ее на АСМЕ написать, могу взяться если опишете алгоритмы подробно.
З. Ы. Частота мигания светодиода (лампочки) 500 Гц?
Сообщение отредактировал smac - Jun 5 2008, 19:26