Страница 1 из 1

ATtiny2313 : Непонятное поведение RESET

Добавлено: Вт июн 05, 2007 19:57:16
Negor
Есть МК ATTiny2313. В него зашита программа написанная в CodeVision. Суть программы такова: есть двумерный массив, каждый элемент кот-го - значение регистра порта B. С помощью переменной i записываются последовательно записываются значения из столбца массива. Это "путь" бегущего огонька. А строки массива - это режимы или "пути" бегущего огонька. Выбор путей осуществляется с пом. переменной j. Так программа работает - всё нормально как я и задумывал. Но - при нажатии на РЕСЕТ значения переменных i и j не сбрасываются! :shock: Т.е. скажем в момент нажатия на РЕСЕТ(на ноге ресета НИЗКИЙ лог. уровень) значения переменных были i=5 j=3, то после отпускания РЕСЕТА они остаются такими же и программа выполняется с того места, на кот-ом была остановлена нажатием РЕСЕТА. Я подумал - может написать обработчик прерывания РЕСЕТА, но не знаю как его организовать в CodeVision. И у меня есть единственная просьба: не надо постить предложения типа:"Та выбрось ты Тиньку...", "Та зачем тебе CodeVision...."
Код прошивки прилагаю(CodeVision+сгенерированный им Асм)

Добавлено: Вт июн 05, 2007 20:12:04
ARV
Элементарно, Ватсон! Сделай i=0; j=0; перед while(1) - и будет тебе счастье! (или другие начальные значения присваивай этим переменным в начале своей программы, те, которые должны быть сразу после сброса).

Добавлено: Вт июн 05, 2007 20:18:20
Negor
Большое спасибо товю ARV :)