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

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

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

nictrace писал(а):как это Вы числа от 1 до 9 тремя линиями кодируете?.. Максимум - 1...8

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

Сообщение ikarab »

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

Вот так:

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

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

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

Сообщение ikarab »

-=MindHunteR=- писал(а): Помогите пожалуйста найти ошибку!

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

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

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

Сообщение ikarab »

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

Че там 5 часов делать то.

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

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

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

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

Сообщение ikarab »

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

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

#asm("sei")

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

В задаче 6 курса есть счет с 0 до заданого числа, тогда его не надо обновлять после каждого отсчета.

GP1 писал(а):Не совсем, ваш Т1 будет тикать 0xFFFF-"шестнадцатибитовое число"


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

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

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

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

Сообщение ikarab »

-=MindHunteR=- писал(а):В ПРОТЕУСЕ естественно время будет искажено, да?


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

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

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

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

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

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

Сообщение GP1 »

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

Сообщение nictrace »

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

Сообщение Pooher »

nictrace писал(а):Вот вопросик назрел: а что, вачдог по умолчанию отключен?.. :(

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

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

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

Сообщение Pooher »

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

Сообщение ikarab »

-=MindHunteR=- писал(а):Я читал что обнулять его таймер надо как можно чаще... ?

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

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

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

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