Страница 25 из 132

Добавлено: Ср мар 25, 2009 09:45:32
-=MindHunteR=-
nictrace писал(а):как это Вы числа от 1 до 9 тремя линиями кодируете?.. Максимум - 1...8
на 3 линии выводится от 0 до 7, а на сегментник 1-8. ))

Добавлено: Ср мар 25, 2009 10:45:50
ikarab
-=MindHunteR=- писал(а):Спасибо Вам, я понял насчет фьюзов!

Вот так:
У вас МК то какой ? А на рисунке ? Опять путиницу начинаете ?

Добавлено: Ср мар 25, 2009 10:49:02
-=MindHunteR=-
Вы правы. Ща поправлю!

Добавлено: Ср мар 25, 2009 10:52:01
ikarab
-=MindHunteR=- писал(а): Помогите пожалуйста найти ошибку!
Отлаживайте частями - вначале отладте ввод с кнопок, потом вывод на индикаторы. Или наоборот.

Добавлено: Ср мар 25, 2009 10:56:07
-=MindHunteR=-
Ну это примерно то, что я делал на протяжении 5 часов.
У меня подозрение, что я не совсем верно ниросовал схему в ПРОТЕУСЕ..

Добавлено: Ср мар 25, 2009 11:36:30
ikarab
-=MindHunteR=- писал(а):Ну это примерно то, что я делал на протяжении 5 часов.
Че там 5 часов делать то.

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

Входы кнопок у вас должны быть с подтяжками - т.е. красным гореть в протеусе когда не нажаты, а нажатве синим.

Добавлено: Ср мар 25, 2009 11:58:50
-=MindHunteR=-
Сделал как Вы сказали.
Заработало.
Спасибо!

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

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

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

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

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

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

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

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

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

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

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

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

TCNT1=ШЕСТНАДЦАТИБИТНОЕ ЧИСЛО
Я прав?

Добавлено: Чт мар 26, 2009 00:13:13
GP1
Не совсем, ваш Т1 будет тикать 0xFFFF-"шестнадцатибитовое число", т.е. он будет считать от вашего числа до 0xFFFF, потом сбросится и если TCNT1 не обновить будет считать от 0x0000 до 0xFFFF.
Если вам надо чтобы счетчик отсчитывал определенное число тиков лучше использовать один из режимов "по совпадению"
p.s. юзаю только ASM 8)

Добавлено: Чт мар 26, 2009 00:28:56
-=MindHunteR=-
отлично, значит я почти правильно все понял!
Я пока на СИ, но надеюсь, что и с АСМ буду разбираться....

Добавлено: Чт мар 26, 2009 00:41:15
ikarab
Обычно прерывания включаю глобально уже после настрое таймера.

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

#asm("sei")

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

В задаче 6 курса есть счет с 0 до заданого числа, тогда его не надо обновлять после каждого отсчета.
GP1 писал(а):Не совсем, ваш Т1 будет тикать 0xFFFF-"шестнадцатибитовое число"
да и 1 тоже может быть 16 битным и 0x1000 тоже пожалуй.

Добавлено: Чт мар 26, 2009 00:46:10
-=MindHunteR=-
Ясненько.
Я так понимаю, что если мне надо сделать прерывание каждые, скажем 5 сотых секунды, то отталкиваясь от частоты задающего генератора настраиваю таймер играясь с TCCR1B и TCNT1.

В ПРОТЕУСЕ естественно время будет искажено, да?

Добавлено: Чт мар 26, 2009 00:57:09
ikarab
-=MindHunteR=- писал(а):В ПРОТЕУСЕ естественно время будет искажено, да?
Да нет. Чего ему искажаться.

Добавлено: Чт мар 26, 2009 01:00:49
-=MindHunteR=-
Ну учитывая, что во время симуляции на моем древнем лапте проц. загружен на 100%, я полагаю, что ПРОТЕУС может не успевать обрабатывать все что надо...

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

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

Так что с вотчдогом? Делать? Или к черту?

Добавлено: Чт мар 26, 2009 09:47:31
GP1
с часовой собакой поступай как знаешь, это только подстраховка. если где застрянет - то пойдет с начала, точнее с точки пересброса

Добавлено: Пт мар 27, 2009 20:47:43
nictrace
Вот вопросик назрел: а что, вачдог по умолчанию отключен?.. :(

Добавлено: Пт мар 27, 2009 22:45:30
Pooher
nictrace писал(а):Вот вопросик назрел: а что, вачдог по умолчанию отключен?.. :(
Да.

Добавлено: Пт мар 27, 2009 22:58:15
-=MindHunteR=-
Есть какие то нюансы его включения?
Я читал что обнулять его таймер надо как можно чаще... Но не вставлять же обнуление через каждую строчку... Как это делать корректно?

Добавлено: Пт мар 27, 2009 23:03:52
Pooher
Ну это смотря как его настроить. Его надо обнулять пока он не переполнился. "В железе" можно посмотреть например в VMLAB или AVRStudio.

Добавлено: Сб мар 28, 2009 02:12:36
ikarab
-=MindHunteR=- писал(а):Я читал что обнулять его таймер надо как можно чаще... ?
Обычно так и выходит. вы должны проверить программу что таймер не сработает, т.е. будет во время сброшен.

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