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

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

Сообщение yron »

Извините конечно но вы уже опытные. А я что я только учусь. У меня огромное желание уметь программировать а кроме вас меня никто не научит мне не на кого надеяться кроме вас .
Реклама
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Сообщение ChipKiller »

.... У меня огромное желание уметь программировать а кроме вас меня никто не научит мне не на кого надеяться .
если есть желание (а литературы по AVR сейчас хоть отбавляй), то обязательно научитесь. Научить этому невозможно.
PS. Грамотно сформулировать вопрос - это почти полдела сделать, так что начните с этого ......
Реклама
Опытный кот
Аватара пользователя
Сообщения: 802
Зарегистрирован: Сб дек 19, 2009 14:51:11
Откуда: Нашенский

Сообщение Eprinter »

yron, ответил в личку.
[color=#006699]In der großen Familie nicht kluven klatz-klatz![/color]
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень

Сообщение vitalik_1984 »

yronДа без тех задания сложно, а без схемы еще сложнее

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

while(PIND.0==1) {}//Тупим в цикле пока кнопка 1 не нажата
      delay_us(400);//Тут пауза
      if (PINB.0==1)//Если на выходе 0 порта Б лог. один то <<--уверены?
         { PORTB.0=0; //выключаем выход 0 порта Б!!!
           PORTB.1=0; }//выключаем выход 1 порта Б Зачем??
 
Короче проверил вашу конструкцию в протеусе, так и не понял как должно ваше устройство работать.
вроде загораются три огонька в зависимости от клавиши 1(Pind0) и датчика 2(Pind1)

нет выключения третьей ноги, что она так всегда должна в высоком находиться?

можно вашу конструкцию сделать на команде switch
три выхода и два входа это пять бит.Получается одна переменная типа char.
Последний раз редактировалось vitalik_1984 Сб июн 16, 2012 18:50:07, всего редактировалось 1 раз.
В поисках истины человек развивается.
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
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 КБ) 157 скачиваний
Последний раз редактировалось 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 часа ночи.
Друг Кота
Аватара пользователя
Сообщения: 26121
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

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

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

Сообщение hybroid »

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

Сообщение yron »

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

Сообщение Jack_A »

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

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