Мелкие вопросы по МК и ПЛИС.

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Аватара пользователя
AI_Disable
Сверлит текстолит когтями
Сообщения: 1116
Зарегистрирован: Чт окт 15, 2009 14:16:18
Откуда: Екб
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение AI_Disable »

DJ_Kiridza, Ваятеле тут можно посоветовать что-то конкретное. Под ваше описание подойдёт любая мега, главное чтоб у неё ног хватало и памяти. А АЦП, уарт, подтяжка и т.п. есть у всех.
Аватара пользователя
DJ_Kiridza
Мучитель микросхем
Сообщения: 458
Зарегистрирован: Пн дек 13, 2010 13:01:59
Откуда: Украина
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение DJ_Kiridza »

Про меги понятно, немного гуглом пробежался, я про аналоги среди PIC-ов например...
мысли мысли штош вы вйотесь
над мойейу головойу
вы там мосга нинайдете
нед там мосга! йа тупойе (БОР)
Аватара пользователя
AI_Disable
Сверлит текстолит когтями
Сообщения: 1116
Зарегистрирован: Чт окт 15, 2009 14:16:18
Откуда: Екб
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение AI_Disable »

PIC-ам такая как у AVR производительность и арсенал периферии, в данном диапазоне цен, только снится.
Аватара пользователя
DJ_Kiridza
Мучитель микросхем
Сообщения: 458
Зарегистрирован: Пн дек 13, 2010 13:01:59
Откуда: Украина
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение DJ_Kiridza »

Ок, пасиб, тогда вопрос снимаю...
мысли мысли штош вы вйотесь
над мойейу головойу
вы там мосга нинайдете
нед там мосга! йа тупойе (БОР)
Аватара пользователя
Wereww
Встал на лапы
Сообщения: 129
Зарегистрирован: Пн окт 04, 2010 17:58:31

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Wereww »

AI_Disable писал(а):Дак я об этом и говорю. Фьюз SCOPT как рас существует для того, чтобы "повесить" эти кондёры, но "изнутри" контроллера, а не снаружи.


Спасибо, попробуем :)
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ploop »

Господа, мне снова требуется ваш совет. ATmega48
Нужен опрос пяти кнопок + программный антидребезг. Проблема в том, что делать задержки непозволительно - в основном цикле каждый такт в дефиците.
Есть такая идея: в прерывании таймера опрашиваем кнопки, если нажата одна, то увеличиваем состояние соответствующего ей регистра (придётся задействовать 5 регистров - думаю взять R10-R15). Когда значение в регистре достигнет определённого значения - выставляем флаг в еще одном регистре (как бы регистре состояния кнопок).

В основном цикле просто проверяем состояние флагов, т.е. не тратим лишние такты.
Смущает количество тактов уже внутри прерывания, хотя всё равно, выигрыш в скорости должен буть ощутимым, т.к. прерывание должно быть примерно 1/32 от тактовой (мне с него еще меандр надо снять на одну из ног)...

Вообще, как это правильно реализуется?
Аватара пользователя
AI_Disable
Сверлит текстолит когтями
Сообщения: 1116
Зарегистрирован: Чт окт 15, 2009 14:16:18
Откуда: Екб
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение AI_Disable »

Не находите, что лучше использовать таймер для реализации задержек? Плюс к тому: сколько длится основной цикл? Если он меньше 0.1с, то можно его использовать как задержку...
Аватара пользователя
*Trigger*
Друг Кота
Сообщения: 3059
Зарегистрирован: Пн май 11, 2009 14:15:00
Откуда: СПб

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение *Trigger* »

Есть две команды:

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

bin2bcd
bcd2bin

Какая из них переводит из двоичного в двоичнодесятичный, а какая и двоичнодесятичного в двоичный?
Этот пост оказался полезен? Не поленись, нажми Изображение слева!
:) :)) :)))
Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
Аватара пользователя
AI_Disable
Сверлит текстолит когтями
Сообщения: 1116
Зарегистрирован: Чт окт 15, 2009 14:16:18
Откуда: Екб
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение AI_Disable »

Ну, следуя логике,
bin2bcd - из двоичного в двоичнодесятичный
bcd2bin - из двоичнодесятичного в двоичный
:)
Аватара пользователя
*Trigger*
Друг Кота
Сообщения: 3059
Зарегистрирован: Пн май 11, 2009 14:15:00
Откуда: СПб

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение *Trigger* »

Спасибо.
Этот пост оказался полезен? Не поленись, нажми Изображение слева!
:) :)) :)))
Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ploop »

Не находите, что лучше использовать таймер для реализации задержек? Плюс к тому: сколько длится основной цикл? Если он меньше 0.1с, то можно его использовать как задержку...

Основной цикл чем меньше, тем лучше. Дело в том, что этот самый основной цикл будет не один, а несколько, в зависимости от режима работы.
Из этих самых режимов проблема только с одним: смысл его - пропустить через себя поток данных, т.е. тупо с трёх ног перекинуть состояние на другие три. Читаем биты, выставляем, зацикливаем. Но надо предусмотреть выход из этого режима - т.е. тот самый опрос кнопок.
Использовать таймер - вариант (благо их там три), но как? Так же в прерываниях?
Аватара пользователя
AI_Disable
Сверлит текстолит когтями
Сообщения: 1116
Зарегистрирован: Чт окт 15, 2009 14:16:18
Откуда: Екб
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение AI_Disable »

ploop писал(а):Использовать таймер - вариант (благо их там три), но как? Так же в прерываниях?

Ну вариантов много, и каждый из них будет лучшим в том или ином контексте... Но, как минимум, могу предложить ничего не инкрементировать по сколько-то там раз, а использовать, например, CTC режим и записывать в OCR длинну необходимой паузы.
Т.е.: в месте, где надо проверять кнопку, проверяем её состояние; пишем значение в OCR; запускаем таймер; в прерывании, от этого таймера, снова смотрим состояние кнопки; если нажата устанавливаем флаг.
---
Блин, честно говоря не до конца понял ситуацию. Вы вообще не хотите ничего опрашивать в цикле? Даже флаги? Тогда, да, единственный вариант, засунуть всё в прерывание и установить его цикличность так, чтоб один цикл - достаточное время для антидребезга.
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ploop »

Т.е.: в месте, где надо проверять кнопку, проверяем её состояние; пишем значение в OCR; запускаем таймер; в прерывании, от этого таймера, снова смотрим состояние кнопки; если нажата устанавливаем флаг.

Это одну. А остальные? :)

Блин, честно говоря не до конца понял ситуацию. Вы вообще не хотите ничего опрашивать в цикле? Даже флаги? Тогда, да, единственный вариант, засунуть всё в прерывание и установить его цикличность так, чтоб один цикл - достаточное время для антидребезга.

Нет, флаги проверять как раз нормально. Всего несколько лишних тактов. А вот опросить пять кнопок - уже дофига выйдет (там одних условных переходов не оберёшься).
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ARV »

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

Мой уютный бложик... заходите!
Аватара пользователя
AI_Disable
Сверлит текстолит когтями
Сообщения: 1116
Зарегистрирован: Чт окт 15, 2009 14:16:18
Откуда: Екб
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение AI_Disable »

ploop писал(а):Это одну. А остальные? :)

Если нужно опрашивать пять кнопок, а не одну, то тут уж ничего не поделаешь.
ЗЫ: Я так понимаю, тут попахивает ассемблером, так что отхожу... :)
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ploop »

ЗЫ: Я так понимаю, тут попахивает ассемблером, так что отхожу...

Дык это.. воняет уже :)
Я на нём пока и пишу. Ладно, спасибо за помощь.
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ibiza11 »

согласен с ARV. Давно сделал заготовку по антидребезгу, правда кнопок было не так много, максимум 3, при этом никаких проблем с задержками девайса в целом не наблюдалось (значительных задержек).
Вот примерный алгоритм опроса кнопок:
1) принимаем условие: дребезг контактов 50мс.
2) заводим на каждую кнопку одну переменную в памяти (ОЗУ) для счета циклов
обращаемся к ней командами lds и sts
3) заводим на каждую кнопку по 2 флага. первый флаг - флаг того, что был факт нажатия кнопки (либо помеха),
второй флаг - флаг необходимости выполнить действие
4) заводим таймер на прерывания каждые 50мс/100*=500мкс (100* для примера, имеем в виду, что макс значение байта 255,
так чтобы, если дребезг останется, можно было увеличить количество циклов)
5) см. блок схему опроса кнопки (ставляется в обработчик прерывания)
Изображение
флаг факта нажатия - это и есть первый флаг.
действия "по нажатию" и "по отпусканию" кнопки использовать на выбор, второй флаг я использую здесь, если действие длинное. Далее в основном цикле опрашиваю флаг и выполняю действие. Если же действие типа "установить единичку на выводе ХХ, порта YY", то не заморачиваюсь со вторым флагом, а выполняю действие прямо здесь, в прерывании.
Вроде все объяснил, как надо. Есть еще вопросы? :)
Вложения
опрос кнопки_res.jpg
Блок схема опроса кнопки с антидребезгом
(41.02 КБ) 889 скачиваний
Ставим плюсы: )
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ploop »

Спасибо, ibiza11
Примерно такой же алгоритм я и описал. Только собирался делать опрос не в прерывании, а по мере надобности.
Аватара пользователя
DJ_Kiridza
Мучитель микросхем
Сообщения: 458
Зарегистрирован: Пн дек 13, 2010 13:01:59
Откуда: Украина
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение DJ_Kiridza »

Для Атмеги16-8AU, если работать от внутреннего генератора, максимальная частота 8, если убрать фузу деления на 8, так? на сколько это точные и честные 8? можно положится на эту частоту или если нужна болие-мение точность - то лучше внешний кварц?
мысли мысли штош вы вйотесь
над мойейу головойу
вы там мосга нинайдете
нед там мосга! йа тупойе (БОР)
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ploop »

С завода этот фьюз включен, т.е. реальная частота - 1МГц. Если снять, то будет 8
А вот точность зависит от многих факторов - напряжение питания, температура, фаза луны... Но в принципе, смотря для чего. Если не нужны жесткие тайминги то вполне можно использовать без кварца.
Ответить

Вернуться в «Разные вопросы по МК»