Ассемблер (ASM) для AVR в вопросах и ответах
nirq, дружище, ты не въехав в тему пытаешься раздавать советы. Не делай так, следующий раз просто помолчи.
Прибор, защищённый предохранителем, сгорает первым, защитив предохранитель. Закон Мерфи.
- Реклама
Шум АЦП - пренебреги им. Тебе надо всего 4 бита из 10 - никакой шум не помешает.
Возможно ты и прав... Сдвинуть нафиг, разика четыре, значение от АЦП, сделать малую задержку и вторую проверку, если результаты совпадут - в бой! 
Прибор, защищённый предохранителем, сгорает первым, защитив предохранитель. Закон Мерфи.
Не надо сдвигать. это долго. Просто забить младшие 4 бита нулями одним разом. Потом ведь все равно сравнивать с константами. А лучше не обнулять а сравнивать по диапазонам.
- Сообщения: 4
- Зарегистрирован: Ср июн 18, 2014 13:33:39
Шум адц сильно зависит от сигнала и окружения. При грамотной реализации шум не больше младшего бита. Если провода длинные или наводки от чего-то, то шум может быть какой угодно. В т.ч. наводки от тела нажимающего кнопки.
- Реклама
- Сообщения: 5
- Зарегистрирован: Вт май 06, 2014 15:56:27
Здравствуйте, дорогие форумчане!
Возникла весьма весомая проблема. Нужно в отчет по практике внести результаты выполнения задания (на ассемблере) , которое не рассматривалось в процессе обучения (писали только hello world,"для галочки")
(спасибо Министерству Образования...).
Задание звучит так "Сформировать значение частоты таймера на ATMEL AVR 10кГц или 100кГц (одно из двух, пусть будет 100)
Итогом должен быть код на Ассемблере, просто задающий эту частоту (без подключения кнопок или всяких там мигающих светодиодов)
МК допускается любой , лишь бы был Atmel avr=)
Преподу также не по душе такая программа обучения, сказал найти в сети и он примет, но в сети есть только на си и с кучей лишних строк и переменных для описания периферии вроде светодиодов, и частота тоже для светодиодов ~0.7-5 Гц.
Заранее спасибо!
Возникла весьма весомая проблема. Нужно в отчет по практике внести результаты выполнения задания (на ассемблере) , которое не рассматривалось в процессе обучения (писали только hello world,"для галочки")
Задание звучит так "Сформировать значение частоты таймера на ATMEL AVR 10кГц или 100кГц (одно из двух, пусть будет 100)
Итогом должен быть код на Ассемблере, просто задающий эту частоту (без подключения кнопок или всяких там мигающих светодиодов)
МК допускается любой , лишь бы был Atmel avr=)
Преподу также не по душе такая программа обучения, сказал найти в сети и он примет, но в сети есть только на си и с кучей лишних строк и переменных для описания периферии вроде светодиодов, и частота тоже для светодиодов ~0.7-5 Гц.
Заранее спасибо!
Драсте! Посоветуйте как можна реализовать задержку 10 минут в Асме?
Betelgeuse
- Сообщения: 4
- Зарегистрирован: Вт июн 17, 2014 15:28:10
для начала частоту кварца озвучте ?КотЭ Мужчина писал(а):Драсте! Посоветуйте как можна реализовать задержку 10 минут в Асме?
atmega-128 1 операция на один клик кварца максимум 16000000 в секунду.
можно тупа пустыми цыклами в циклах.
ldi temp,ff
ldi temp1,255 ; подбирается
zikl:
dec temp
cmp temp,0
brne zikl
zikl1:
dec temp1
cmp temp1,0
brne zikl1
rjmp кудато
можно активировать таймер с предделением и по прерыванию скажем сравнения, переполнения .
- Сообщения: 4
- Зарегистрирован: Вт июн 17, 2014 15:28:10
мож не по теме- не пинайте сильно, а зачем клаву по ацп опрашивать мож проще как порт?:Shinen писал(а):Шум адц сильно зависит от сигнала и окружения. При грамотной реализации шум не больше младшего бита. Если провода длинные или наводки от чего-то, то шум может быть какой угодно. В т.ч. наводки от тела нажимающего кнопки.
Насколько я понял, его 4 кнопки дают разный уровень напряжения. И все 4 подключены к одному каналу АЦП. А он по этому уровню пытается определить, какая из них была нажата.
Fucking static initialization order fiasco
Pink-Pank, абсолютно в дырочку!
Только канала два (каждый по 4 кнопки), но не суть. Это было придумано до меня, мне просто сигналы взять нужно было.
Ну, к примеру, таким нехитрым образом можно повесить даже десяток кнопок на один единственный вывод контроллера.михалыч23 писал(а):а зачем клаву по ацп опрашивать
Прибор, защищённый предохранителем, сгорает первым, защитив предохранитель. Закон Мерфи.
- Сообщения: 4
- Зарегистрирован: Вт июн 17, 2014 15:28:10
Понял. хотя наверное кондер паралельно повесить проще, ведь по времени не ограничивает? можно действительно несколько выборок делать.
давно не писал, но вроде есть режим по крайней мере у 128 точно, понижения шумов при выборке
Вообще прикольно, оказывается еще кто то пишет на асме!
давно не писал, но вроде есть режим по крайней мере у 128 точно, понижения шумов при выборке
Вообще прикольно, оказывается еще кто то пишет на асме!
Последний раз редактировалось ibiza11 Пт июн 27, 2014 09:16:01, всего редактировалось 1 раз.
Причина: Нарушение п. 2.7 Правил.
Причина: Нарушение п. 2.7 Правил.
Для тини13 - только АСМ!
А понижение шумов мне ни к чему - 4 кнопки распознать то, точность +/- лапоть.
Проблему я свою решил просто и надёжно: после опознавания нажатия АЦП-шкой прога улетает на обработчик этого нажатия. Так вот там-то, перед обработкой, считываем АЦП ещё раз, и только после этого распознаём конкретную кнопку. Задержки в одно преобразование АЦП оказалось достаточно, чтоб полностью избавиться от ложняков. И скорость не пострадала.
Параллельно чему? И почему проще?михалыч23 писал(а):наверное кондер паралельно повесить проще
А понижение шумов мне ни к чему - 4 кнопки распознать то, точность +/- лапоть.
Проблему я свою решил просто и надёжно: после опознавания нажатия АЦП-шкой прога улетает на обработчик этого нажатия. Так вот там-то, перед обработкой, считываем АЦП ещё раз, и только после этого распознаём конкретную кнопку. Задержки в одно преобразование АЦП оказалось достаточно, чтоб полностью избавиться от ложняков. И скорость не пострадала.
Прибор, защищённый предохранителем, сгорает первым, защитив предохранитель. Закон Мерфи.
Только хуже сделаешь, кнопка будет с каждым нажатием подгорать, ведь ты ей будешь разряжать заряженный кондер - огромные импульсные токи...
Это ж какой емкости должен быть конденсатор, чтобы были огромные импульсные токи? )) К тому же, можно поставить конденсатор + небольшой резистор.
Fucking static initialization order fiasco
Конденсатор требует затрат на него и места на плате, а программное устранение дребезга - только мозгов пишущего программу. Вот каждый и поступает, как ему лучше.
(RC-фильтр я конечно сделал, но сейчас речь не об этом
)
Прибор, защищённый предохранителем, сгорает первым, защитив предохранитель. Закон Мерфи.
ток зависит не от емкости а от ESR конденсатора, даже 0.1мкф хорошие пленочные с годами убивают кнопку за счет тока при замыкании. А если кнопка не с посеребренными контактами, то и того быстрее.
Так-то оно так. Только чем больше емкость - тем длительнее импульс тока
Fucking static initialization order fiasco
День добрый!
Люди добрые, подскажите пожалуйста, как можно реализовать XOR для битов в байте? те есть байт, нужно проиксорить все биты в нем, а результат записать в регистр. Для XOR байтов пользовался командой EOR, а как с битами быть не понимаю.
Люди добрые, подскажите пожалуйста, как можно реализовать XOR для битов в байте? те есть байт, нужно проиксорить все биты в нем, а результат записать в регистр. Для XOR байтов пользовался командой EOR, а как с битами быть не понимаю.


