Например TDA7294

Форум РадиоКот • Просмотр темы - Опрос кнопок микроконтроллером
Форум РадиоКот
Здесь можно немножко помяукать :)



Текущее время: Ср сен 30, 2020 02:01:29

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 321 ]    , , , 4, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Помогите опросить кнопку
СообщениеДобавлено: Вс ноя 11, 2012 18:56:28 
Родился
Аватар пользователя

Зарегистрирован: Пт ноя 09, 2012 17:22:37
Сообщений: 17
Откуда: Москва
Рейтинг сообщения: 0
Уважаемый Alexeyslav Я с вами согласени по поводу "Рано тебе программы писать "с наскока". Начни с блок-схем. На них хорошо видны все возможные ситуации и узкие места."
Вот есть у меня умная книжка http://www.labirint.ru/books/300259/ как вы считаете? она подойдёт я изучения программирования? там как раз и блок-схемы описывают, только она правда для PIC, ну это не важно!

А если нет, подскажите Какую книжку выбрать? и какую чучше скачать прогу (софт) для создания блок-схем (для си или ассемблера)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите опросить кнопку
СообщениеДобавлено: Вс ноя 11, 2012 19:12:52 
Опытный кот
Аватар пользователя

Карма: 10
Рейтинг сообщений: 64
Зарегистрирован: Ср апр 16, 2008 13:22:54
Сообщений: 878
Откуда: Приднестровье, Тирасполь
Рейтинг сообщения: 0
RGB писал(а):
... и какую чучше скачать прогу (софт) для создания блок-схем (для си или ассемблера)

Карандаш обыкновенный и лист бумаги. Если алгоритм не влезет на лист бумаги, то он как бы и не нужен ))) Впрочем, он и так не особо полезен, мыслить программными модулями куда удобнее.

_________________
Любой, заслуживающий внимания, опыт приобретается себе в убыток...


Вернуться наверх
 
JLCPCB, всего $2 за прототип печатной платы! Цвет - любой!

Отличное качество, подтвержденное более чем 600,000 пользователей! Более 10,000 заказов в день.

Зарегистрируйтесь и получите два купона по 5$ каждый:https://jlcpcb.com/quote

Не в сети
 Заголовок сообщения: Re: Помогите опросить кнопку
СообщениеДобавлено: Вс ноя 11, 2012 20:34:51 
Друг Кота

Карма: 28
Рейтинг сообщений: 563
Зарегистрирован: Чт май 05, 2011 21:26:34
Сообщений: 4506
Откуда: Украина, Славутич
Рейтинг сообщения: 0
Описание блок-схем нужно только для того как какой участок отображать на схеме, ну вроде стандарта.

Программ для рисования блок-схем не видел ни одной достойной, даже платные... чтобы нарисовать что-то и подключить в нужные места нужно слишком много телодвижений. Карандашом же - в среднем 4 линии на фигуру - от 2 до 5 секунд. И, однако, мысль все-равно порой быстрее...
Программы нужны разве что для того чтобы задокументировать готовые схемы - для этих целей годится даже DRAW из состава OpenOffice, но там все очень сложно с привязкой к определенной сетке - пока выровняешь все фигуры пройдет столько же времени как на их рисование и соединение, изменение может порушить красиво разведенные связи и т.д.

Если кто найдет более удобную программу для рисования блок-схем, сообщите.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Шестое юбилейное мероприятие в процессе
Не в сети
 Заголовок сообщения: Re: Помогите опросить кнопку
СообщениеДобавлено: Вс ноя 11, 2012 21:36:48 
Модератор
Аватар пользователя

Карма: 78
Рейтинг сообщений: 817
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4085
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Ну чтож, коли пошла такая пьянка, подкину и я своих дровишек в костёрчик )
Раз тут собрались одни АВРщики :)), пришлось поставить CV и черкнуть на нём примерчик обработки кнопок. CV взял из-за генератора кода, т.к. не хочется лезть в даташит на совершенно незнакомые мне МК. В общем, за им генерируемый код меня не пинать :)) . Остальное, что касается моей писанины - обсуждаем, критикуем, закидываем помидорами, .... :)))
В архиве проект + файл всеми любимого протеуса:
Вложение:
butt.rar [68.12 KiB]
Скачиваний: 516
Программа хорошо комментирована, так что, думаю, вопросов не возникнет.
Если кому будет интересно, могу добавить обработку длинного нажатия.

_________________
Я мненью вашему вращенье придавал, а осью был - мой детородный орган.


Вернуться наверх
 
Драйверы MOSFET/IGBT Infineon – силой нужно управлять!

Специалисты Infineon усовершенствовали традиционные кремниевые MOSFET и IGBT и выпустили компоненты на базе принципиально иных материалов – нитрида галлия и карбида кремния. Мы создали подборку полезных материалов, чтобы вы разобрались во всех тонкостях и стали экспертом по управлению силовыми приборами нового поколения CoolMOS, CoolGaN, CoolSiC!

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Помогите опросить кнопку
СообщениеДобавлено: Вс ноя 11, 2012 22:10:01 
Опытный кот
Аватар пользователя

Карма: 10
Рейтинг сообщений: 64
Зарегистрирован: Ср апр 16, 2008 13:22:54
Сообщений: 878
Откуда: Приднестровье, Тирасполь
Рейтинг сообщения: 0
Еще вариант антидребезга кнопки/датчика:
Код:
//--------Чтение состояния городской линии
void city_line_read(flag_tmp* fl_tmp)
{
static uchar8 key_acc; //переменная для хранения послед. состояний кнопки

key_acc <<=1; // Сдвигаем аккумулятор влево на 1 бит
key_acc |= !(CITY_LINE_PIN); // читаем состояние ножки и добавляем новое значение к аккумулятору

switch(key_acc)
{
 case 0:
 fl_tmp->city_line_state=ZERO;
 break;

 case 0xFF:
 fl_tmp->city_line_state=ONE;
 break;

 default:
 fl_tmp->city_line_state=RANDOM;
 break;

}
}

_________________
Любой, заслуживающий внимания, опыт приобретается себе в убыток...


Вернуться наверх
 
Снижена цена на DC/DC и AC/DC преобразователи Mornsun в Компэл!

Хорошие новости для покупателей источников питания! Компэл снизил цены на всю продукцию Mornsun. В ассортименте – как широко известные и популярные позиции, так и новинки. Доступны AC/DC, неизолированные DC/DC-преобразователи или импульсные стабилизаторы (семейство K78/R3), изолированные DC/DC, и новейшее поколение R4.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Помогите опросить кнопку
СообщениеДобавлено: Вс ноя 11, 2012 22:39:49 
Мудрый кот
Аватар пользователя

Карма: 21
Рейтинг сообщений: 142
Зарегистрирован: Сб фев 21, 2009 13:11:40
Сообщений: 1898
Откуда: Москва
Рейтинг сообщения: 0
Alexeyslav писал(а):
Если кто найдет более удобную программу для рисования блок-схем, сообщите.
есть такая бесплатная программа - yEd, компании yWorks. скачивается из интернета. 40 МБ.
По примеру уважаемого Jack_A картинку закинул под спойлер


Вложения:
Комментарий к файлу: пример
primer.png [39.13 KiB]
Скачиваний: 1596

_________________
Ставим плюсы: )


Последний раз редактировалось ibiza11 Вс ноя 11, 2012 22:56:39, всего редактировалось 1 раз.
Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: Помогите опросить кнопку
СообщениеДобавлено: Вс ноя 11, 2012 22:51:30 
Друг Кота
Аватар пользователя

Карма: 49
Рейтинг сообщений: 664
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 4339
Откуда: Minsk
Рейтинг сообщения: 0
Goodefine писал(а):
Карандаш обыкновенный и лист бумаги.


На мой взгляд, не лучшее решение. Имея электронный вариант схемы, ее легче копировать и модифицировать.
Пользуюсь банальным Paint. Открываем 2 экземпляра программы, в одном будет рабочее поле, в другом -- библиотека элементов ( или схема-прототип, из которой будем выдергивать нужные элементы ) . Простым копипастом набрасываем каркас схемы, затем в текстовом режиме добавляем обозначения и названия. В итоге получаем что-то вроде :



Вложения:
Example.JPG [60.42 KiB]
Скачиваний: 1427
Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: Помогите опросить кнопку
СообщениеДобавлено: Вс ноя 11, 2012 23:23:57 
Опытный кот
Аватар пользователя

Карма: 8
Рейтинг сообщений: 105
Зарегистрирован: Ср фев 22, 2012 01:25:21
Сообщений: 881
Рейтинг сообщения: 0
Alexeyslav писал(а):
Если кто найдет более удобную программу для рисования блок-схем, сообщите.

Я пользуюсь платной (не знаю мож есть и ломаные, но я голову не ломал, взял да купил) WizFlow очень доволен.



Вложения:
algoritm.JPG [97.3 KiB]
Скачиваний: 1499
Вернуться наверх
 
Бытовой пирометр АКИП-9312 – просто удобно!

Диапазон 35 °С ...42°С (температура тела) погрешность 0,3 °С
Диапазон 0 °С ...100°С (бытовая сфера) погрешность 1,0 °С
Не в сети
 Заголовок сообщения: Re: Помогите опросить кнопку
СообщениеДобавлено: Вс ноя 11, 2012 23:26:07 
Друг Кота

Карма: 28
Рейтинг сообщений: 563
Зарегистрирован: Чт май 05, 2011 21:26:34
Сообщений: 4506
Откуда: Украина, Славутич
Рейтинг сообщения: 0
Диаграммы умеет рисовать множество программ, тот же DRAW имеет для этого все инструменты... но, пользоваться ими со скоростью мысли невозможно. Только как в качестве чистовика. Рисование в программах отнимает уйму времени и собственно отвлекает от самого алгоритма.

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

А рисовать схемы в паинте это вообще мазохизм... гораздо удобней для этого одна из программ 98-го года, она работает по принципу паинта с библиотекой "заготовок" но она слава богу ушла в небытие, и её вполне способен заменить Sprint Layout работающий по тому же принципу но с векторными объектами. Но в нём столь же неудобно рисовать блок-схемы... не для того он заточен.

Да что говорить, пачка бумаги с десятком карандашей стоит сейчас дешевле чем эти программы-рисовальщики(Visio Pro например). Выигрывает в скорости, но проигрывает в красивости. Вот во втором случае программы и выручают, когда рисуется окончательный вариант... но обычно он уже не нужен - программа написана а бумажки сожжены выполнив свою роль.
Кстати черкать и переделывать блок-схему в электронном виде не так-то и просто - слишком много времени теряется.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите опросить кнопку
СообщениеДобавлено: Вс ноя 11, 2012 23:30:08 
Мудрый кот
Аватар пользователя

Карма: 21
Рейтинг сообщений: 142
Зарегистрирован: Сб фев 21, 2009 13:11:40
Сообщений: 1898
Откуда: Москва
Рейтинг сообщения: 0
Alexeyslav, Вы просто не умеете их готовить) вот посмотрите: http://www.youtube.com/watch?v=ujMhxPJnJCw

_________________
Ставим плюсы: )


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите опросить кнопку
СообщениеДобавлено: Вс ноя 11, 2012 23:47:13 
Друг Кота

Карма: 28
Рейтинг сообщений: 563
Зарегистрирован: Чт май 05, 2011 21:26:34
Сообщений: 4506
Откуда: Украина, Славутич
Рейтинг сообщения: 0
Зачем еще одна программа которая работает абсолютно так же как и DRAW? Оно конечно хорошо, но все элементы имеют разный размер потом их приходится постоянно ровнять. А сразу клепать одинаковые как-то не получается... только копи-паст.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите опросить кнопку
СообщениеДобавлено: Пн ноя 12, 2012 20:18:52 
Родился

Зарегистрирован: Пн ноя 12, 2012 19:34:55
Сообщений: 1
Рейтинг сообщения: 0
Подскажите пожалуйста, если у меня кнопка без фиксации, как мне обработать нажатие кнопки?
if (!PIND.2) //если нажата кнопка {
for (i=0; i<8; i++) {}; //антидребезг
if (!PIND.2) //если все-таки нажата кнопка
{тут что-то происходит};
}// тут получается, что выполняется программа, пока нажата кнопка, если ее отжать, то ничего не будет происходить, а как мне сделать, чтобы код выполнялся, после нажатия-отжатия?

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите опросить кнопку
СообщениеДобавлено: Пн ноя 12, 2012 23:01:50 
Друг Кота

Карма: 28
Рейтинг сообщений: 563
Зарегистрирован: Чт май 05, 2011 21:26:34
Сообщений: 4506
Откуда: Украина, Славутич
Рейтинг сообщения: 0
Собственно в чем суть проблемы? Чтение всего 3-х страниц не помогло(последняя не в счет)?

Цитата:
for (i=0; i<8; i++) {}; //антидребезг

Это не антидребезг а пародия на антидребезг... за какое время выполнится эта часть кода? 20-30 тактов процессора от силы, если компилятор не упростит всю конструкцию до одной команды...

Кнопки надо считывать раз в 10-20мс не чаще, тогда на дребезг не нарвёшься...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите опросить кнопку
СообщениеДобавлено: Пн ноя 12, 2012 23:17:00 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 12
Рейтинг сообщений: 67
Зарегистрирован: Пт авг 27, 2010 05:57:06
Сообщений: 2482
Откуда: Тюмень
Рейтинг сообщения: 0
Goodefine писал(а):
Еще вариант антидребезга кнопки/датчика:
Код:

key_acc 
<<=1// Сдвигаем аккумулятор влево на 1 бит
key_acc |= !(CITY_LINE_PIN); // читаем состояние ножки и добавляем новое значение к аккумулятору
 

Странное дело вроде как дефайном CITY_LINE_PIN можно установить любую ножку для пользы дела, но ведь сдвиг осуществляется путем ввода нулей с другой стороны, то есть чтобы получилось состояние 0xFF просто необходимо, чтобы CITY_LINE_PIN было 0x01
в чем тут цинус?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите опросить кнопку
СообщениеДобавлено: Пн ноя 12, 2012 23:33:15 
Опытный кот
Аватар пользователя

Карма: 10
Рейтинг сообщений: 64
Зарегистрирован: Ср апр 16, 2008 13:22:54
Сообщений: 878
Откуда: Приднестровье, Тирасполь
Рейтинг сообщения: 0
vitalik_1984 писал(а):
то есть чтобы получилось состояние 0xFF просто необходимо, чтобы CITY_LINE_PIN было 0x01
в чем тут цинус?

Цимус в том, что необходимо чтобы CITY_LINE_PIN было равно 0х00 восемь раз ПОДРЯД

_________________
Любой, заслуживающий внимания, опыт приобретается себе в убыток...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите опросить кнопку
СообщениеДобавлено: Вт ноя 13, 2012 14:20:43 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 12
Рейтинг сообщений: 67
Зарегистрирован: Пт авг 27, 2010 05:57:06
Сообщений: 2482
Откуда: Тюмень
Рейтинг сообщения: 0
стоп стоп стоп, расшифруйте тогда что у вас спрятано за этим CITY_LINE_PIN.
про восемь раз я все прекрасно понял.
И я еще немножко неправильно выразился, нужно чтобы !(CITY_LINE_PIN) всегда получался 0x01.

Предположим, что там (PORTB&PINB4) если кнопка нажата получится 0b0001 0000 как тогда получится 0xFF, если когда сдвинули и сложили получили 0b00110000
Или я чего то недопонимаю?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите опросить кнопку
СообщениеДобавлено: Вт ноя 13, 2012 14:48:55 
Друг Кота

Карма: 28
Рейтинг сообщений: 563
Зарегистрирован: Чт май 05, 2011 21:26:34
Сообщений: 4506
Откуда: Украина, Славутич
Рейтинг сообщения: 0
Видимо, если проделать эту операцию 8 раз и за все эти 8 раз значение бита не менялось то весь байт примет однородное значение - либо $00 либо $FF. Но правда, зачем такой изощренный метод использовать для подавления дребезга - загадка. Вероятно, экономится парочка регистров?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите опросить кнопку
СообщениеДобавлено: Вт ноя 13, 2012 14:57:52 
Опытный кот
Аватар пользователя

Карма: 10
Рейтинг сообщений: 64
Зарегистрирован: Ср апр 16, 2008 13:22:54
Сообщений: 878
Откуда: Приднестровье, Тирасполь
Рейтинг сообщения: 0
Под CITY_LINE_PIN спрятано банальное
Код:
#define CITY_LINE_PIN   PINB.4         /*пин опроса состояния городской линии*/

Это для CVAVR. Можно выкрутится и с более стандартной записью
Код:
#define CITY_LINE_PIN   (PINB&(1<<PB4))       /*пин опроса состояния городской линии*/
...
key_acc |= (CITY_LINE_PIN)? (0):(1); // читаем состояние ножки и добавляем новое значение к аккумулятору

Может и проще можно, лень думать )))

_________________
Любой, заслуживающий внимания, опыт приобретается себе в убыток...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите опросить кнопку
СообщениеДобавлено: Ср ноя 14, 2012 00:49:59 
Родился
Аватар пользователя

Зарегистрирован: Пт ноя 09, 2012 17:22:37
Сообщений: 17
Откуда: Москва
Рейтинг сообщения: 0
Аlex
Цитата:
Ну чтож, коли пошла такая пьянка, подкину и я своих дровишек в костёрчик )

Просто огромное вам СПАСИБО!!! в вашем коде с кнопками многое мне пояснило!
Респект вам и Уважуха :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите опросить кнопку
СообщениеДобавлено: Ср ноя 21, 2012 17:59:41 
Первый раз сказал Мяу!

Зарегистрирован: Вт янв 31, 2012 21:09:21
Сообщений: 28
Откуда: Украина
Рейтинг сообщения: 0
Вопрос к Alex: а почему мою тему viewtopic.php?f=20&t=80979 закрыли и при этом направили меня сюда??? Тут и так "полным-полна коробушка", меня только со своими нубскими вопросами не хватало.... Я эту ветку прочитал, но еще больше запутался. Не получается у меня опрашивать эти чертовы кнопки - хоть ты мать божью пой. Компиляется все красиво, а вот протеус говорит "не видать тебе удачи". И хотя я неоднократно слышал, что симуляторы не всегда правду говорят, в данном случае мне кажется, что не врет он... Я конечно могу в железе собрать свою схему, плату вытравить - дело 30 минут, но только ничего я и на плате наверное не увижу. Модер, открой тему мою, я лучше там буду потихоньку вопросы задавать - глядишь кто чего и подскажет. А то в этой теме мне стыдно позориться со своим "мегапроектом".


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 321 ]    , , , 4, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y