ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Обсуждаем контроллеры компании Atmel.
Ответить
Открыл глаза
Аватара пользователя
Сообщения: 62
Зарегистрирован: Пн мар 23, 2009 16:20:56
Откуда: From the Middle of Nowhere

Сообщение -=MindHunteR=- »

nictrace писал(а):как это Вы числа от 1 до 9 тремя линиями кодируете?.. Максимум - 1...8
на 3 линии выводится от 0 до 7, а на сегментник 1-8. ))
Контактная информация:
Реклама
Опытный кот
Аватара пользователя
Сообщения: 828
Зарегистрирован: Пн мар 16, 2009 21:40:57

Сообщение ikarab »

-=MindHunteR=- писал(а):Спасибо Вам, я понял насчет фьюзов!

Вот так:
У вас МК то какой ? А на рисунке ? Опять путиницу начинаете ?
Контактная информация:
Реклама
Открыл глаза
Аватара пользователя
Сообщения: 62
Зарегистрирован: Пн мар 23, 2009 16:20:56
Откуда: From the Middle of Nowhere

Сообщение -=MindHunteR=- »

Вы правы. Ща поправлю!
Контактная информация:
Опытный кот
Аватара пользователя
Сообщения: 828
Зарегистрирован: Пн мар 16, 2009 21:40:57

Сообщение ikarab »

-=MindHunteR=- писал(а): Помогите пожалуйста найти ошибку!
Отлаживайте частями - вначале отладте ввод с кнопок, потом вывод на индикаторы. Или наоборот.
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Открыл глаза
Аватара пользователя
Сообщения: 62
Зарегистрирован: Пн мар 23, 2009 16:20:56
Откуда: From the Middle of Nowhere

Сообщение -=MindHunteR=- »

Ну это примерно то, что я делал на протяжении 5 часов.
У меня подозрение, что я не совсем верно ниросовал схему в ПРОТЕУСЕ..
Контактная информация:
Реклама
Опытный кот
Аватара пользователя
Сообщения: 828
Зарегистрирован: Пн мар 16, 2009 21:40:57

Сообщение ikarab »

-=MindHunteR=- писал(а):Ну это примерно то, что я делал на протяжении 5 часов.
Че там 5 часов делать то.

У вас должна быть промежуточная переменная. Проверьте что значение с кнопок в нее ложиься. Антидребезг вам не нужен просто опрашивайте кнопки 50 раз в секунду в прервании таймера например.

Входы кнопок у вас должны быть с подтяжками - т.е. красным гореть в протеусе когда не нажаты, а нажатве синим.
Контактная информация:
Реклама
Открыл глаза
Аватара пользователя
Сообщения: 62
Зарегистрирован: Пн мар 23, 2009 16:20:56
Откуда: From the Middle of Nowhere

Сообщение -=MindHunteR=- »

Сделал как Вы сказали.
Заработало.
Спасибо!

2 Вопроса общего характера:

1) стоит ли пользоваться вотчдогом?

2) По поводу прерываний. Я напишу, а вы скажите правильно или нет.

Чтоб запустить прерывание по таймеру, я выполняЮ:

Код: Выделить всё

   #asm
    sei
#endasm
Это врубает мне интеррапты вообще.

Потом я врубаю переполнение на таймер1

Код: Выделить всё

TIMSK=0x80;
Отрубаю ШИМ и аутпут и выставляю раз в сколько тактов будет тикать таймер

Код: Выделить всё

TCCR1A=0x00;
TCCR1B=0x05;
И ставлю скоко раз надо тикнуть, чтоб переполниться...

Код: Выделить всё

TCNT1=ШЕСТНАДЦАТИБИТНОЕ ЧИСЛО
Я прав?
Контактная информация:
GP1
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград

Сообщение GP1 »

Не совсем, ваш Т1 будет тикать 0xFFFF-"шестнадцатибитовое число", т.е. он будет считать от вашего числа до 0xFFFF, потом сбросится и если TCNT1 не обновить будет считать от 0x0000 до 0xFFFF.
Если вам надо чтобы счетчик отсчитывал определенное число тиков лучше использовать один из режимов "по совпадению"
p.s. юзаю только ASM 8)
Контактная информация:
Открыл глаза
Аватара пользователя
Сообщения: 62
Зарегистрирован: Пн мар 23, 2009 16:20:56
Откуда: From the Middle of Nowhere

Сообщение -=MindHunteR=- »

отлично, значит я почти правильно все понял!
Я пока на СИ, но надеюсь, что и с АСМ буду разбираться....
Контактная информация:
Опытный кот
Аватара пользователя
Сообщения: 828
Зарегистрирован: Пн мар 16, 2009 21:40:57

Сообщение ikarab »

Обычно прерывания включаю глобально уже после настрое таймера.

в примерах CVAVR есть пример как это пишут

#asm("sei")

А потом загружают число в регистр таймера.

В задаче 6 курса есть счет с 0 до заданого числа, тогда его не надо обновлять после каждого отсчета.
GP1 писал(а):Не совсем, ваш Т1 будет тикать 0xFFFF-"шестнадцатибитовое число"
да и 1 тоже может быть 16 битным и 0x1000 тоже пожалуй.
Контактная информация:
Открыл глаза
Аватара пользователя
Сообщения: 62
Зарегистрирован: Пн мар 23, 2009 16:20:56
Откуда: From the Middle of Nowhere

Сообщение -=MindHunteR=- »

Ясненько.
Я так понимаю, что если мне надо сделать прерывание каждые, скажем 5 сотых секунды, то отталкиваясь от частоты задающего генератора настраиваю таймер играясь с TCCR1B и TCNT1.

В ПРОТЕУСЕ естественно время будет искажено, да?
Контактная информация:
Опытный кот
Аватара пользователя
Сообщения: 828
Зарегистрирован: Пн мар 16, 2009 21:40:57

Сообщение ikarab »

-=MindHunteR=- писал(а):В ПРОТЕУСЕ естественно время будет искажено, да?
Да нет. Чего ему искажаться.
Контактная информация:
Открыл глаза
Аватара пользователя
Сообщения: 62
Зарегистрирован: Пн мар 23, 2009 16:20:56
Откуда: From the Middle of Nowhere

Сообщение -=MindHunteR=- »

Ну учитывая, что во время симуляции на моем древнем лапте проц. загружен на 100%, я полагаю, что ПРОТЕУС может не успевать обрабатывать все что надо...

Хотя когда я ставлю дилей в 2 секунды, счет проиходит быстрее (чуть больше одной сек.) Не знаю почему.

Частоту кварца я указываю только в свойствах проекта в CVAVR и в ПРОТЕУСЕ в свойствах чипа?

Так что с вотчдогом? Делать? Или к черту?
Контактная информация:
GP1
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград

Сообщение GP1 »

с часовой собакой поступай как знаешь, это только подстраховка. если где застрянет - то пойдет с начала, точнее с точки пересброса
Контактная информация:
Мучитель микросхем
Аватара пользователя
Сообщения: 492
Зарегистрирован: Вс янв 11, 2009 09:29:08
Откуда: Ярославль

Сообщение nictrace »

Вот вопросик назрел: а что, вачдог по умолчанию отключен?.. :(
Мои верные друзья - АМD и AVR
LM317 - атцтой, LM2576ADJ - форева! :)
Контактная информация:
Мучитель микросхем
Аватара пользователя
Сообщения: 491
Зарегистрирован: Вс янв 07, 2007 01:45:48
Откуда: Российская Федерация, будь она неладна...

Сообщение Pooher »

nictrace писал(а):Вот вопросик назрел: а что, вачдог по умолчанию отключен?.. :(
Да.
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Открыл глаза
Аватара пользователя
Сообщения: 62
Зарегистрирован: Пн мар 23, 2009 16:20:56
Откуда: From the Middle of Nowhere

Сообщение -=MindHunteR=- »

Есть какие то нюансы его включения?
Я читал что обнулять его таймер надо как можно чаще... Но не вставлять же обнуление через каждую строчку... Как это делать корректно?
Контактная информация:
Мучитель микросхем
Аватара пользователя
Сообщения: 491
Зарегистрирован: Вс янв 07, 2007 01:45:48
Откуда: Российская Федерация, будь она неладна...

Сообщение Pooher »

Ну это смотря как его настроить. Его надо обнулять пока он не переполнился. "В железе" можно посмотреть например в VMLAB или AVRStudio.
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Опытный кот
Аватара пользователя
Сообщения: 828
Зарегистрирован: Пн мар 16, 2009 21:40:57

Сообщение ikarab »

-=MindHunteR=- писал(а):Я читал что обнулять его таймер надо как можно чаще... ?
Обычно так и выходит. вы должны проверить программу что таймер не сработает, т.е. будет во время сброшен.
Контактная информация:
Родился
Сообщения: 10
Зарегистрирован: Сб мар 28, 2009 17:07:00

Сообщение Блуд »

добый день всем котам.
помогите плиз новичку.
возможно, уже кто-то задавал этот вопрос, но или я невнимательный, или не там смотрел.
взял tiny2313 в исполнении SOIC20, подключил по 5 проводкам, прошил в cvavr2 через LPT. всё было хорошо.
но потом захотел поменять фьюзы, отвечающие за частоту, cksel 0...3.
и перепутал парочку случайно. наверное, установил недопустимую комбинацию. другие фьюзы не трогал. то есть сначала прочёл дефалтные заводские, сменил вот эти и записал обратно. всё. больше таня не подключалась. то есть не определялась программатором. хотя на той же плате у меня другие МК стоят, с ними всё норм.
я так понял, нужно подать тактовый импульс на XTAL1? как его подать? помогите, люди добрые, буду очень признателен.
Блуд не любит флуд = )
Контактная информация:
Ответить

Вернуться в «AVR»