Страница 326 из 400

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Сб фев 17, 2018 15:46:55
Starichok51
зато INC (DEC) выставляют флаг НУЛЯ!
и проверку на нуль делаем командой brne. ну, или breq...
выше BOB51 уже про это писал.

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Сб фев 17, 2018 16:30:44
akl
[uquote="Jetetex",url="/forum/viewtopic.php?p=3310748#p3310748"]... на Attiny 2313 сделать 16-ти разрядный счётчик (+1 в каждом такте)...[/uquote]Программный, думаю, не получится.

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Сб фев 17, 2018 16:44:13
BOB51
Дословно да - не получится ибо на отработку приращения уйдет несколько МАШИННЫХ ТАКТОВ (а не один - на - приращение), а вот для подсчета каких - либо событий вполне сгодится.
8)

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Сб фев 17, 2018 20:26:56
Starichok51
Jetetex писал(а):Нужно в ассемблере на Attiny 2313 сделать 16-ти разрядный счётчик (+1 в каждом такте)
для +1 вполне подойдет команда adiw. но она тратит 2 цикла.
и не правильно говорить про такт. это машинный ЦИКЛ. а уже цикл состоит из тактов. но в AVR мы тактов не видим, они от нас скрыты.

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Вт фев 27, 2018 19:41:32
Jetetex
Всем огромное спасибо за участие.
Пока читал - понял что немного не точно задал вопрос. (но ответ был все таки найден). Нужен счетчик событий в течении суток с диапазоном от 3сек до 2 минут, кол-во которых будет в любом случае более 256.

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Ср фев 28, 2018 05:32:53
akl
Т.е. максимальная ёмкость счетчика будет 86400/3=28800, что вполне укладывается в два байта. Сгенерировать суточный интервал, внутри которого считать события. Ничего сложного. Другое дело когда нужно вести лог длительности каждого события! Было дело, решал подобную задачу. Пришлось ставить FRAM FM24V10.

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Ср фев 28, 2018 06:56:36
Demiurg
[uquote="Jetetex",url="/forum/viewtopic.php?p=3310748#p3310748"]Помогите профану. Нужно в ассемблере на Attiny 2313 сделать 16-ти разрядный счётчик (+1 в каждом такте), но не могу разобратся с командами ADD, ADC.[/uquote]
Книги:
Вольфганг Трамперт. AVR-RISC микроконтроллеры фирмы ATMEL.
Джон Мортон. Микроконтроллеры AVR. Вводный курс.
1 - В этих книгах описаны архитектура AVR, система команд. Примеры проектов для практики.
2 - Прочитав эти книги вы сэкономите свое время и время участников. Вы экономите свое тем, что из книг получите азы и в следующий раз не будете тратить свое время на форумах, ожидая ответов на элементарные вопросы. Также вы экономите чужое время.

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Ср фев 28, 2018 16:24:12
Jetetex
если бы все знали мат часть, то необходимости в форумах не возникло бы априори. А вообще иногда так зацикливаешься на какой то проблеме, что просто нужен чей то взгляд со стороны, что бы опустить тебя на землю. ))

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Ср фев 28, 2018 16:43:20
Demiurg
[uquote="Jetetex",url="/forum/viewtopic.php?p=3319029#p3319029"]если бы все знали мат часть, то необходимости в форумах не возникло бы априори. А вообще иногда так зацикливаешься на какой то проблеме, что просто нужен чей то взгляд со стороны, что бы опустить тебя на землю. ))[/uquote]
Категорически не соглашусь! Информация должна быть качественной. В идеале форумы должны быть информативными, а не постоянными повторениями, а подскажите-ка мне то-то. Этому персонажу лень жопу от стула оторвать, один раз книжку прочитать. Ему проще лежа на печи на диване на смартфоне настучать сиюминутный вопрос. Если мучать форум, так более содержательными вопросами...

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Чт мар 01, 2018 21:14:07
Jetetex
Почитал книги, порылся в интернете, но так и не нашел однозначного ответа. Нужно в Attiny 13 использовать внешнее прерывание по INT_0(что то вроде бистабильного реле- одно нажатие-вкл, второе-выкл).

Вопрос: нужно ли делать антидребезг при использовании этого прерывания (программный или аппаратный)?

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Чт мар 01, 2018 21:45:27
Alexeyslav
кнопка... там не нужно прерывание, с ним больше возни. Лучше запустить таймер с периодом в 20мс, в его прерывании один раз смотреть кнопку, ловить изменения(сранивая результаты нынешнего и предыдущего скана) и переключать то что вам надо. С прерыванием на кнопку НУЖЕН антидребезг и реализовать его достаточно просто и изящно не получится.

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Чт мар 01, 2018 21:49:07
dr.doc
Это почему? А запретить прерывание от INT, запустить таймер, а по истечении времени проверить состояние. Выполнить задачу согласно состояния и разрешить прерывания по INT.

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Чт мар 01, 2018 21:55:02
Jetetex
Планируется использование команды Sleep, а значит либо сторожевой, либо внешнее прерывание, что бы не будить контроллер без необходимости.
Но суть понятна - антидребезг нужен.

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Пт мар 02, 2018 11:45:38
BOB51
Скорее "ожидание подтверждения отпускания"...
:roll:

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Пт мар 02, 2018 12:20:58
Alexeyslav
Даже в этом случае, прерывание по порту с кнопкой пусть только будит контроллер скажем на время не более 100мс, а опрос кнопок - по таймеру. Таймер на время сна просто останавливать. Впрочем, во время глубокого сна с отключением тактирования можно и не останавливать.

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Пт мар 02, 2018 14:16:34
Jetetex
То есть что то вроде:

EXT_INT0:
ldi temp,250
d1:
dec temp
brne d1

reti

при 128 кГц /8 ?

прерывание по спадающему фронту

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Пт мар 02, 2018 14:40:33
BOB51
Кнопка вызвала прерывание, а вот выход из прерывания либо с предварительным его запретом либо после ожидания гарантированно отпушеной кнопки.
8)

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Пт мар 02, 2018 18:52:43
Alexeyslav
нет, сразу же выходишь с прерывания и ВСЁ. В прерывании ничего делать не надо. Его задача - пробудить контроллер, а дальше будут работать обычные механизмы отработки нажатия кнопок и т.д.
После команды SLEEP обнулить таймер, чтобы с нуля пошел считать и если кнопка реально была нажата то через 10-20мс вы об этом узнаете, если кнопка не нажата и ничего не надо больше делать считаете по таймеру 5...10 переполнений и снова в SLEEP.

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Вс мар 04, 2018 09:08:47
АСУ
[uquote="Alexeyslav",url="/forum/viewtopic.php?p=3321116#p3321116"]нет, сразу же выходишь с прерывания и ВСЁ. В прерывании ничего делать не надо. Его задача - пробудить контроллер, а дальше будут работать обычные механизмы отработки нажатия кнопок и т.д.[/uquote]
Если ничего не делать, то прерывание по INT будет постоянно отрабатывать пока не будет отпущена кнопка… такое дрыганье не есть гуд.

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Вс мар 04, 2018 09:29:35
Demiurg
Уточнение, прерывание, которое настроено на низкий уровень. А не по спаду или фронту.