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

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Chettuser

Сообщение Chettuser »

Насколько я понял - в "ТЗ" ещё речь шла о времени через какое нужно переключать.
Тут 2 пути - либо задействовать таймеры, либо ставить счётчик. Второе для начинающего предпочтительнее.
Реклама
Открыл глаза
Сообщения: 79
Зарегистрирован: Пт июн 15, 2012 13:11:36

Сообщение yron »

vitalik_1984 А работать должна так - нажимаем первую кнопочку сразу загорается первый светодиод после 5 сек загорается 2 светодиод . если нажата 2 кнопочка загорается и 3 светодиод а если не нажата то 2 светодиод должен гаснуть и ждать опять 5 сек после чего опать загорает .

Товарищ Eprinter написал программу Спасибо ему большое , но выдает одну ошибочку 'bit' type not supported for chips with AVR8L core в строке bit on_off; // 0 - выкл, 1 - вкл
МК Atmega8 В программе CodevisionAvr Подскажите что нужно подправить потому что Товарищ Eprinter появится только завтра.
Последний раз редактировалось yron Вс июн 17, 2012 09:09:52, всего редактировалось 1 раз.
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень

Сообщение vitalik_1984 »

может мы бы и подсказали,но мы не видели вашей программы,что сделал Eprinter
так что могу посоветовать сменить тип бит на тип char.
хоть он отличается размером.но для вашего применения этого кристалла думаю памяти хватит.
В поисках истины человек развивается.
Контактная информация:
Открыл глаза
Сообщения: 79
Зарегистрирован: Пт июн 15, 2012 13:11:36

Сообщение yron »

Вот программа .

Если нужно что то подправить подскажите .
Вместо bit поставил char заработало прошил контроллер но работает не так как надо .
А работает так
Когда на PD.2 появляется логический ноль (кнопка 1 нажата) программа выдает на PD.5 лог.1 . Дальше ничего не происходит. Но если на PD.3 появится лог.0 (кнопка 2 нажата ) и удерживается ,на PD.7 программа выдает лог.1 а подключенный на PD.6 светодиод начинает мигать.
Вложения
avr.txt
(3.12 КБ) 149 скачиваний
Последний раз редактировалось yron Вс июн 17, 2012 09:11:30, всего редактировалось 6 раз.
Реклама
Эиком - электронные компоненты и радиодетали
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень

Сообщение vitalik_1984 »

вообще ваше тех задание не вполне понятно.нажали на 1 кнопку и отпустили или держим?при нажатой 1 кнопке можно происходить переключение светодиодов?
зачем вы удерживаете эту кнопку?
как должно происходить отключение системы от этой кнопки?отпусканием или повторным нажатием.

и портянки такие незачем тут писать.учитесь вложения делать.
В поисках истины человек развивается.
Контактная информация:
Реклама
Открыл глаза
Сообщения: 79
Зарегистрирован: Пт июн 15, 2012 13:11:36

Сообщение yron »

Задание такого
От кнопки 1 включается и выключается программа . Нажимаем 1 кнопку загорается 1 светодиод после 5 секунд как загорелся 1 светодиод загорается 2 светодиод после 10 секунд как загорелся 2 светодиод проверяется состояние 2 кнопки если она не нажата программа рестартируется на то места где идет ожидание 5 секунд (то есть 2 светодиод гаснет и опять идет отсчет 5секунд) а если кнопка 2 нажата загорается 3 светодиод . Как отпустили 2 кнопку программа рестартируется также как если кнопка и не нажималась . после чего нажимаем 1 кнопку и все выключается . И еше 1 кнопкой должна быть возможность выключить программу в любой момент .
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень

Сообщение vitalik_1984 »

А работает так
Когда на PD.2 появляется логический ноль (кнопка 1 нажата) программа выдает на PD.5 лог.1 . Дальше ничего не происходит.
кнопка 1 нажата или нажали и отпустили?
В поисках истины человек развивается.
Контактная информация:
Открыл глаза
Сообщения: 79
Зарегистрирован: Пт июн 15, 2012 13:11:36

Сообщение yron »

Нажал и отпустил.
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень

Сообщение vitalik_1984 »

Это значит нажали кратковременно на кнопку включается первый светодиод.
Через пять сек включается второй.
Если на второй кнопке ноль, то через 10 сек после включения или после нажатия на кнопку включаем третий светодиод.
Если на второй кнопке единица, то мигаем каждые пять секунд вторым светодиодом.
Так?
В поисках истины человек развивается.
Контактная информация:
Открыл глаза
Сообщения: 79
Зарегистрирован: Пт июн 15, 2012 13:11:36

Сообщение yron »

Поправлю
1.Это значит нажали кратковременно на кнопку включается первый светодиод. (для избежания дребезга контактов программа срабатывает если жмем на кнопку 1-2сек.)
2.Через пять сек включается второй.
3.Если на второй кнопке ноль, то через 10 сек после включения первого светодиода включаем третий светодиод.
4.Если на второй кнопке единица, то все начинается с опять со 2 строки (2.Через пять сек включается второй.)
5.Нажимаем первую кнопку тоже с удержанием в 1-2сек и все выключается.
Опытный кот
Аватара пользователя
Сообщения: 802
Зарегистрирован: Сб дек 19, 2009 14:51:11
Откуда: Нашенский

Сообщение Eprinter »

yron писал(а):Когда на PD.2 появляется логический ноль (кнопка 1 нажата) программа выдает на PD.5 лог.1 . Дальше ничего не происходит. Но если на PD.3 появится лог.0 (кнопка 2 нажата ) и удерживается ,на PD.7 программа выдает лог.1 а подключенный на PD.6 светодиод начинает мигать.
Это потому, что лепил наспех и без чёткого ТЗ (технического задания). Про исключения дребезга вообще ни слова не было. Вечером изменю и даже отлажу, так и быть, сейчас нет возможности.
[color=#006699]In der großen Familie nicht kluven klatz-klatz![/color]
Открыл глаза
Сообщения: 79
Зарегистрирован: Пт июн 15, 2012 13:11:36

Сообщение yron »

Извиняюсь про дребезг я узнал только после чего почитал книжку. А с постановкой технического задания конечно я облажался.
Спасибо вам большое Eprinter. Очень много информации в книжках про avr зачитался настолько что не заметил что уже 4 часа ночи.
Друг Кота
Аватара пользователя
Сообщения: 25404
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

Eprinter писал(а):Про исключения дребезга вообще ни слова не было.
Как только в задании звучит слово кнопка или вообще механический контакт, так АВТОМАТИЧЕСКИ, без всяких дополнительных условий возникает условие подавления дребезга. Кнопки, механические энкодеры, контакты реле - все это требует учета дребезга при включении и выключении.
Друг Кота
Аватара пользователя
Сообщения: 8007
Зарегистрирован: Вс ноя 14, 2010 19:24:26
Откуда: Лукалэнд

Сообщение hybroid »

Начальные эксперименты с кнопками? Параллельно кнопке попробуйте кондёр поставить, на 100 нан, например. Аппаратный давитель дребезга. :)
Открыл глаза
Сообщения: 79
Зарегистрирован: Пт июн 15, 2012 13:11:36

Сообщение yron »

Кондер эффективно помогаем.
Но хотелось бы увидеть решение и в программном виде .
Друг Кота
Аватара пользователя
Сообщения: 6323
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Сообщение Jack_A »

hybroid писал(а):Начальные эксперименты с кнопками? Параллельно кнопке попробуйте кондёр поставить, на 100 нан, например. Аппаратный давитель дребезга. :)
Мне кажется, учите полумерам :) В данном случае при наличии "мозгов" в виде МК может и покатит, а для чистой логики затянутые фронты - не комильфо. Триггер Шмитта или RS поможет. В моей ранне-разработчицкой практике тактировал схему от мультивибратора и очень огорчался, что счетчик прыгает не +1, а + х.з.сколько . Срезы у импульса мульта - сами знаете ...
Друг Кота
Аватара пользователя
Сообщения: 8007
Зарегистрирован: Вс ноя 14, 2010 19:24:26
Откуда: Лукалэнд

Сообщение hybroid »

Может быть не одна реализация.. Зависит от того, как опрашиваются кнопки. Настолько замусоленная тема, товарищи, воспользуйтесь гуглом для начала.

Смысл примерно одинаков: увидели нажатие, подождали, ещё раз проверили. Если оно осталось - ура, это был не дребезг. Если не было - значит дребезг.
Открыл глаза
Сообщения: 79
Зарегистрирован: Пт июн 15, 2012 13:11:36

Сообщение yron »

hybroid так это и так понятно а как это в программе оформить???
Chettuser

Сообщение Chettuser »

Хмм... наверное циклом с задержкой.
Открыл глаза
Сообщения: 79
Зарегистрирован: Пт июн 15, 2012 13:11:36

Сообщение yron »

Можно с простой задержкой а можно с использованием таймера. Что лучше ????
Ответить

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