ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Наверно эт приколы моего сонного мозга! Вчера ночью не работало. Сегодня открыл проэк работает! Хоть в чудеса не верю, но всё-таки стрёмна как-то!!!
- Реклама
Делаю часы на ATTiny2313. Данные часов, минут и секунд храню в РОН (R0,R1,R2) . Записываю данные в эти регистры с помощью сложения и проверки на переполнения
mov W,r0
ldi temp, 1
add W,temp
ldi temp,60
cpse W, temp
rjmp w3
clr W
w3: mov r0,W
Изначально я расчитываю на, что в регистр R0 пуст и значение его 0х00. Но после выключения и включения питания там или последнее значение до выкл. питания, или вообще случайные числа. Как-то использовал РОН для косвенной адресации, так это вообще пипец!!! Еслив РОН было левое число, то это равносильно "пойдём туда - хрен его знает куда" ... Спасаюсь тем, что после иницилизации стека вставляю команды очищающия жизненно важных регистров и тогда всё работает ок!
Вопрос:
Как избавиться от этого явления не вставляя лишние команды очистки регистров? Лишние 3-4 команды в начале программы это конечно не так уж и много, но всё-таки! Может это как-то связанно с FUSE переключателями. (Я их не менял. Заводские настройки)
mov W,r0
ldi temp, 1
add W,temp
ldi temp,60
cpse W, temp
rjmp w3
clr W
w3: mov r0,W
Изначально я расчитываю на, что в регистр R0 пуст и значение его 0х00. Но после выключения и включения питания там или последнее значение до выкл. питания, или вообще случайные числа. Как-то использовал РОН для косвенной адресации, так это вообще пипец!!! Еслив РОН было левое число, то это равносильно "пойдём туда - хрен его знает куда" ... Спасаюсь тем, что после иницилизации стека вставляю команды очищающия жизненно важных регистров и тогда всё работает ок!
Вопрос:
Как избавиться от этого явления не вставляя лишние команды очистки регистров? Лишние 3-4 команды в начале программы это конечно не так уж и много, но всё-таки! Может это как-то связанно с FUSE переключателями. (Я их не менял. Заводские настройки)
- Сообщения: 491
- Зарегистрирован: Вс янв 07, 2007 01:45:48
- Откуда: Российская Федерация, будь она неладна...
Без команд очищения не обойтись. Любой регистр МК при включении может иметь любое значение. И, кстати, вы в курсе что МК использует указанные регистры для некоторых операций?
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
если использовать регистры из старшей половины R16-R31, код можно упроститьKeFirCHic писал(а):
ldi temp, 1
add W,temp
ldi temp,60
cpse W, temp
rjmp w3
clr W
w3: mov r0,W
Код: Выделить всё
inс W ; я бы обзвал регистры sek, min, hour
cpi W,60
brne w3
clr W ; если счетчик сек 60, то обнуляем и добавляем минуту
inc min
; и так далее
w3:опять же не забывать очем говорил Pooher!
Я и считаю в BCD. (По тетрадам). Часы отображают время в десятиричной и шеснадцатерично системе.
Знаю только, что R0-R15 имею какие-то ограничения. И с какими-то командами не работаю. А что и как - понятия не имею. Если есть информация поделитесь.
Знаю только, что R0-R15 имею какие-то ограничения. И с какими-то командами не работаю. А что и как - понятия не имею. Если есть информация поделитесь.
- Реклама
Ну тут без чтения книжек не обойтись.
Рекомендую А.В.Евстифеева "Микроконтроллеры AVR семейства ...(есть и по мегам и тину) фирмы ATmel"
Рекомендую А.В.Евстифеева "Микроконтроллеры AVR семейства ...(есть и по мегам и тину) фирмы ATmel"
- Сообщения: 491
- Зарегистрирован: Вс янв 07, 2007 01:45:48
- Откуда: Российская Федерация, будь она неладна...
- Сообщения: 265
- Зарегистрирован: Сб авг 01, 2009 16:10:22
- Сообщения: 491
- Зарегистрирован: Вс янв 07, 2007 01:45:48
- Откуда: Российская Федерация, будь она неладна...
Вариантов много:
1. Спалил LPT.
2. Спалил МК.
3. Неправильные фьюзы.
Ну, при перврм и втором варианте всё понятно.
Третий вариант можно попробовать полечить. Тут первое, что надо сделать, это попробовать подать внешний тактирующий сигнал. Если ничего не заработает, то параллельный программатор Вам в руки.
PS: Пользуйтесь поиском, надоело одно и тоже писать!
1. Спалил LPT.
2. Спалил МК.
3. Неправильные фьюзы.
Ну, при перврм и втором варианте всё понятно.
Третий вариант можно попробовать полечить. Тут первое, что надо сделать, это попробовать подать внешний тактирующий сигнал. Если ничего не заработает, то параллельный программатор Вам в руки.
PS: Пользуйтесь поиском, надоело одно и тоже писать!
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
- Сообщения: 3641
- Зарегистрирован: Пт апр 03, 2009 22:12:58
- Откуда: Из Украины, Кировоградская облась,
выставлены под внешний кварц частотой от 3МГц до 8 МГц и также делитель частоты на 8. Ставте кварц на 4МГц , два конденсатора на землю и тогда можно прошить.
Я не Сашок!!!
- Сообщения: 3641
- Зарегистрирован: Пт апр 03, 2009 22:12:58
- Откуда: Из Украины, Кировоградская облась,
Надо говорить - без них не запуститсяHudgun писал(а):так надоRedrik Shuhart писал(а):нахрен надо 2 кондера за кварцом?
Мои верные друзья - АМD и AVR
LM317 - атцтой, LM2576ADJ - форева!
LM317 - атцтой, LM2576ADJ - форева!
- Сообщения: 265
- Зарегистрирован: Сб авг 01, 2009 16:10:22
Добрый вечер))))Собирал вот такую штуковину http://www.techmaniacs.net/repairs_lab/1694/?pg=1 Всё собрал, выставил фьюзы по этой картинки
Устройство не заработало. Програмировал 5 проводами. На данный момент тинька не подаёт признаков жизни. Программапишет, мол нету ответа от контролера. Собрал СТК200/300 - ничем не помог. Пишет, что нет ответа. Помогите, что делать??
P.S: у меня ATTiny2313? а не A90S2313
Устройство не заработало. Програмировал 5 проводами. На данный момент тинька не подаёт признаков жизни. Программапишет, мол нету ответа от контролера. Собрал СТК200/300 - ничем не помог. Пишет, что нет ответа. Помогите, что делать??P.S: у меня ATTiny2313? а не A90S2313
проверяйте монтаж. вот цитата с того сайта
так что это нормально. не знаю какая там схема, но судя по фузам, контроллер запрограммирован на работу с внешним кварцем 3-8Мгц. Он у вас установлен?И теперь нажимаем кнопку «Write». После этого оно выдаст какую-то ошибку, типа контроллер не читается, но на это не обращаем внимания:
Ставим плюсы: )
- Сообщения: 265
- Зарегистрирован: Сб авг 01, 2009 16:10:22
- Сообщения: 265
- Зарегистрирован: Сб авг 01, 2009 16:10:22
проверяйте монтаж, генерацию. скорее всего там проблемы. не забываем про питание. контроллер работает до 16 МГц, если это не tiny2313V (этот до 8 МГц). почитайте даташит на микроконтроллер. если с языком проблемы, почитайте книжку "Микроконтроллеры AVR в радиолюбительской практике Белов А.В.2007"
Ставим плюсы: )



