Страница 1 из 1
Пульт на плис. Логическая и практическая схемы
Добавлено: Пт май 29, 2009 16:37:50
xxxl
Нужно собрать пульт с 20 кнопками. С восемьюсегментным индикатором для отображения. С со связью с мк. Я сделал его без плис на атмеге но он долго опрашивает кнопки и их приходиться удерживать до секунды, это не годиться. С плис я не работал пока что поэтому вопросов много. Какую именно выбрать? я остановился на альтера, но не определился с семейством и моделью. Как выглядит логическая схема? ну и т.д. Если можно подробнее. Програмное обеспечение я выбрал MAX+
Re: Пульт на плис. Логическая и практическая схемы
Добавлено: Пт май 29, 2009 16:52:10
mackerel
xxxl писал(а):Я сделал его без плис на атмеге но он долго опрашивает кнопки и их приходиться удерживать до секунды, это не годиться.
Конечно, не годится! Но это не значит, что обязательно Altera бросаться ваять - нужно просто грамотно программу изменить.
Просмотрите внимательно темы - помнится, была такая, про опрос кнопок. Возможно, и не одна. Но то, что проблема решается чисто программными методами - безусловно.
Хм... Или у Вас тактовая частота на кристалле 1 kHz?
Добавлено: Пт май 29, 2009 17:15:04
xxxl
нет, частота нормальная вроде. Попробую исправить программно. Но все же если делать на плис как это осуществить?
Добавлено: Пт май 29, 2009 18:51:53
Pooher
Но все же если делать на плис как это осуществить?
Да смысла нет ни каково, если на меге уже сделано.
http://radiokot.ru/start/mcu_fpga/avr/16/
Добавлено: Пт май 29, 2009 20:53:15
Alex72
На меге можно сделать пульт хоть на 500 кнопок и еще повесить кучу функций и всё это будет работать без тормозов при грамотно написанной программе. ПЛИС тут совершенно избыточна
Re: Пульт на плис. Логическая и практическая схемы
Добавлено: Сб май 30, 2009 07:56:48
asteroid7
xxxl писал(а):Нужно собрать пульт с 20 кнопками. С восемьюсегментным индикатором для отображения. С со связью с мк. ...
Вы бы привели частоты и временные условия работы пульта. А то гадать хватает меги или нет можно бесконечно.
Добавлено: Сб май 30, 2009 13:08:16
Vov123
Можно рассмотреть возможность подключение кнопок к 16-битному расширителю порта PCF8575(всё-же намного дешевле ПЛИС и позволит сохранить ножки проца).Будете на выходе I2C получать код нажатой клавиши.
В моём примере к уже 20 кнопкам можно прибавить еще 40.И всё это счастье по 2 проводам.
Добавлено: Пн июн 01, 2009 22:41:44
xxxl
с опросом кнопок справился. Действительно дело было в программе. Теперь все очень быстро опрашивает. Возник другой вопрос. Пульт управляет установкой и у него есть команда -запрос состояния. Отослав эту команду пульт ждет данные с установки:
void USART_Transmit(unsigned char data)
{
/* Ожидание освобождения буфера передатчика */
while ( !( UCSR0A & (1<<5)) );
/* Помещение данных в буфер, отправка данных */
UDR0 =data;
}
проблема в том что он входит в этот цикл приема, и крутиться там пока не получит эти данные. Видимо я не до конца понимаю как это работает, так как у меня не получилось вставить в этот цикл опрос кнопок, что бы можно было нажатием выходить из него. Я делал так:
void USART_Transmit(unsigned char data)
{
/* Ожидание освобождения буфера передатчика */
while ( !( UCSR0A & (1<<5)))
{
if(Opros()==20) //Opros() функция опроса , которая возвращает
// номер нажатой кнопки
return;
}
/* Помещение данных в буфер, отправка данных */
UDR0 =data;
}
и пульт переставал правильно получать входящие данные