Изменение скорости мигиния диода через меню на LCD

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Аватара пользователя
Spirit412
Встал на лапы
Сообщения: 125
Зарегистрирован: Пн авг 04, 2008 10:54:11
Откуда: Питер
Контактная информация:

Изменение скорости мигиния диода через меню на LCD

Сообщение Spirit412 »

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

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

Помогите плиз разобраться....
Реклама
Аватара пользователя
Aheir
Модератор
Сообщения: 4517
Зарегистрирован: Пн апр 03, 2006 11:43:25
Откуда: Санкт - Петербург
Контактная информация:

Сообщение Aheir »

Один из самых простых вариантов - по нажатию кнопок (или что там у Вас есть) изменять значение параметра-переменной mode (например). Далее, в зависимости от значения этого параметра switch'ем делаем вывод того или иного содержимого на экран, а внутри case'а этого switch'а м.б. изменение другого параметра и т.д., т.е. получаем многоуровневое меню. Простой пример этого можете посмотреть в моем проекте простейшего предусилителя с цифровым управлением в статьях.
Оптимизм х (Опыт + Знания) = const
Реклама
Аватара пользователя
Spirit412
Встал на лапы
Сообщения: 125
Зарегистрирован: Пн авг 04, 2008 10:54:11
Откуда: Питер
Контактная информация:

Сообщение Spirit412 »

не-не-не!
мне-бы какой примерчик... с описанием... с кодом в Си
Говоришь у тебя есть пример... посмотрю... надеюсь поможет :)
Аватара пользователя
Sounds
Прорезались зубы
Сообщения: 238
Зарегистрирован: Вт май 27, 2008 23:23:24

Сообщение Sounds »

А в чём конкретно проблема? Что именно ты не можешь реализовать?
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Spirit412
Встал на лапы
Сообщения: 125
Зарегистрирован: Пн авг 04, 2008 10:54:11
Откуда: Питер
Контактная информация:

Сообщение Spirit412 »

Sounds писал(а):А в чём конкретно проблема? Что именно ты не можешь реализовать?
Проблема в том что только-только начал разбираться с МК.
А уроков с написанием меню... с возможностью сохранения в постоянную память параметров - ненашел.

Допустим есть пример - мигание светодиода.
В тексте программы настр. тайминги и прочее... диод мигает с определённой скоростью.
Но что бы изменить скорость - нужно перепрошивать!!! А зачем? Если в плате http://sub.chipdoc.ru/html.cgi/txt/app/ ... htm?fid=32 есть LCD с джойстиком....
Было бы удобно реализовать этот простейший пример с использованием LCD.
Взял... зашел в меню... изменил время горения с.диода... и время в потухшем состоянии... сохранил...... И всё...
Но примеров как вообще писать меню.... не нашёл :([/url]
Реклама
BerZerK-ku
Мучитель микросхем
Сообщения: 492
Зарегистрирован: Вт июл 22, 2008 08:10:54

Сообщение BerZerK-ku »

Spirit412 писал(а):
Sounds писал(а):А в чём конкретно проблема? Что именно ты не можешь реализовать?
Проблема в том что только-только начал разбираться с МК.
А уроков с написанием меню... с возможностью сохранения в постоянную память параметров - ненашел.

Допустим есть пример - мигание светодиода.
В тексте программы настр. тайминги и прочее... диод мигает с определённой скоростью.
Но что бы изменить скорость - нужно перепрошивать!!! А зачем? Если в плате http://sub.chipdoc.ru/html.cgi/txt/app/ ... htm?fid=32 есть LCD с джойстиком....
Было бы удобно реализовать этот простейший пример с использованием LCD.
Взял... зашел в меню... изменил время горения с.диода... и время в потухшем состоянии... сохранил...... И всё...
Но примеров как вообще писать меню.... не нашёл :([/url]
Мда... тут дело глухо. А не пробовали на шаги задачу разбить? Типа:
1. Мигать светодиодом.
2. Управление светодиодом с помощью кнопок.
3. Вывод информации на ЖК.
4. Создание меню на ЖК.
5. Работа с EEPROM.
А по другому тут никак... Разве что перед другими похвастаться, показав чужую работу. С чужими исходниками будет разобраться не легче, чем с нуля все самому сделать.
Реклама
Аватара пользователя
Spirit412
Встал на лапы
Сообщения: 125
Зарегистрирован: Пн авг 04, 2008 10:54:11
Откуда: Питер
Контактная информация:

Сообщение Spirit412 »

Да, наверное так и сделаю...

А не подскажите...
Существует ли схемка АВР Батерфляя для отладки в Протеусе????
Я уже всё обыскал... многих спрашивал...

Можно и самому нарисовать по описанию конечно.. :) Но зачем велосипед изобритать
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18556
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Сообщение ARV »

Spirit412 писал(а):А не подскажите...
Существует ли схемка АВР Батерфляя для отладки в Протеусе????
Я уже всё обыскал... многих спрашивал...
Можно и самому нарисовать по описанию конечно.. :) Но зачем велосипед изобритать
гм... это какой-то извращенный садомазохизм... имея в наличии живую железяку корячиться с моделью в протеусе... мда...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Spirit412
Встал на лапы
Сообщения: 125
Зарегистрирован: Пн авг 04, 2008 10:54:11
Откуда: Питер
Контактная информация:

Сообщение Spirit412 »

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

Сообщение ARV »

Spirit412 писал(а):Вчём то вы правы!
Но... если в будущем захочется соорудить управление чемто более масштабным...нежели диодом! то былобы не плохо иметь схемку...
неужели уже на 2 светодиода замахиваетесь?! не страшно? ;)

а разве на плате батерфляя нет макетной области? что протеус - софТВАРЬ бездушная... а железочка - она тепло рук любит, ласку... кому попало не отдается...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Spirit412
Встал на лапы
Сообщения: 125
Зарегистрирован: Пн авг 04, 2008 10:54:11
Откуда: Питер
Контактная информация:

Сообщение Spirit412 »

Там нет макетной части как таковой....
есть дырки под разъёмы... напаял разъемов...остальное навесом.
Платка паханькая.

По поводу дальнейшего.... хочу в итоге сделать управление на газовый электромагнитный клапан, который управляет затвором. Регулировка времени с точностью до 5мсек.
Есть заводская плата... с управлением от меги48... но снеё никак прошивку не скачать... и управление настроек осуществляется без LCD.

Для программирования используются две кнопки: кнопка питания и кнопка программирования (серая кнопка на схемной плате, которую можно увидеть, сняв боковую панель ). Обратная связь с пользователем обеспечивается посредством двух индикаторов, расположенных на печатной плате – желтый и красный индикаторы.

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

Постоянно горящий индикатор – настройка задержки затвора

Мигающий индикатор - настройка ROF Delay

Двойное мигание индикатора – режим работы затвора на нажатие (одиночный одно нажатие - один раз открылся и закрылся затвор), полный автомат (пока нажата кнопка... затвор откр/закр))

Цвет мигающего или горящего индикатора указывает на то, как настройки будут устанавливаться:

Желтый - повышение значения настройки

Красный – снижение значения настройки

Идиотская система :(
Хотелосьбы в итоге иметь LCD для отоброжения настроек и значений.
Аватара пользователя
Степаныч
Открыл глаза
Сообщения: 68
Зарегистрирован: Ср июн 20, 2007 18:46:54
Откуда: Красноярск
Контактная информация:

Сообщение Степаныч »

А вы имеете знания СИ или Ассемблера! Если вы не имеете знаний в языках и планы у вас большие вы должны хотя бы курс какой нибудь почитать(Хотя бы товарища Tich-a) или здешнюю обучалку. P/S Просто не думаю что под такую задачу вы найдете примеры готовых исходников . :wink:
IN GOD WE TRUST
Аватара пользователя
Spirit412
Встал на лапы
Сообщения: 125
Зарегистрирован: Пн авг 04, 2008 10:54:11
Откуда: Питер
Контактная информация:

Сообщение Spirit412 »

Степаныч писал(а):А вы имеете знания СИ или Ассемблера! Если вы не имеете знаний в языках и планы у вас большие вы должны хотя бы курс какой нибудь почитать(Хотя бы товарища Tich-a) или здешнюю обучалку. P/S Просто не думаю что под такую задачу вы найдете примеры готовых исходников . :wink:
Пока опыт основывается на "мигающем" диоде...
Читаю книгу "Написание программ для микроконтроллеров AVR"

Готовые исходники действительно не найду.... это и понятно.
Аватара пользователя
Степаныч
Открыл глаза
Сообщения: 68
Зарегистрирован: Ср июн 20, 2007 18:46:54
Откуда: Красноярск
Контактная информация:

Сообщение Степаныч »

Тогда еще можно вам предложить поискать исходники отдельно по задачам как предлогал Berkzerk . Тогда можно потом собрать все в кучу подправить все ок! Но лучше изучить самостоятельно(по своему небольшому опыту знаю) :) ! А что книгу читаете это оч хорошо :))
IN GOD WE TRUST
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18556
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Сообщение ARV »

Spirit412, а че у вас за объект такой, которым вы собираетесь управлять? уж не горелка для воздушного шара случайно? :) любопытно стало - затворы какие-то, горелки...

второе: баттерфляй-то вам зачем? какова цель: сделать именно на собственном оригинальном ЖКИ, или все равно на каком? может, вам проще будет использовать ЖКИ со встроенным контроллером, с ними точно возни меньше будет в смысле меню и т.п. а по задаче судя (точнее, по вашим словам) там и attiny2313 много будет, а вы на таком мощном контроллере собрались делать... денег не жалко?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Spirit412
Встал на лапы
Сообщения: 125
Зарегистрирован: Пн авг 04, 2008 10:54:11
Откуда: Питер
Контактная информация:

Сообщение Spirit412 »

ARV писал(а):Spirit412, а че у вас за объект такой, которым вы собираетесь управлять? уж не горелка для воздушного шара случайно? :) любопытно стало - затворы какие-то, горелки...

второе: баттерфляй-то вам зачем? какова цель: сделать именно на собственном оригинальном ЖКИ, или все равно на каком? может, вам проще будет использовать ЖКИ со встроенным контроллером, с ними точно возни меньше будет в смысле меню и т.п. а по задаче судя (точнее, по вашим словам) там и attiny2313 много будет, а вы на таком мощном контроллере собрались делать... денег не жалко?
Данный агрегат применяется в электронных пеинтбольных маркерах, типа ИОН!
Мне удобнее работать с Батерфляем...т.к. там уже всё есть. Да и потом... мне не нужно это делать в промышленных масштабах!!!

В маркере есть электромагнитный клапан... также есть "глаза"... представляющие собой ИК датчик присутствия шара в стволе, ну и соотв. курок(кнопка огня)
Логика действия такова... нажимаем курок... идёт опрос глаз... если шар в стволе... то производится выстрел!... если нет... то не производится.... пока глаза не дадут положительный результат!
это если стоит режим полного автоматического огня... т.е. пока нажат курок... маркер стреляет.
Если полуавтомат... то нужно делать цикл опроса курка.. на предмет того был-ли он отжат...а потом опять нажат!

Плюс возможность сохранять настройки.
LCD... наиболее подходящий вариант - очень мленький... в одну строчку. имволов нужно... примерно 8-12ть.


Пока эксперементирую с Батерфляем....
Честноговоря... нет времени сьездить и купить МК attiny2313 под который уже написано куча уроков.... и макетку что бы спаять плату.
Аватара пользователя
Spirit412
Встал на лапы
Сообщения: 125
Зарегистрирован: Пн авг 04, 2008 10:54:11
Откуда: Питер
Контактная информация:

Сообщение Spirit412 »

В общем... разобрался :)
Оказывается катушка электромагнита управляется МК посредством ШИМ.
Катушка подключена через полевой транзистор.

Может кто подскажет.... Что за LCD в AVR Butterfly стоит? И какой у него контроллер????

Просто в описании написано "120 сегментный ЖКИ " и всё :(
Аватара пользователя
Aheir
Модератор
Сообщения: 4517
Зарегистрирован: Пн апр 03, 2006 11:43:25
Откуда: Санкт - Петербург
Контактная информация:

Сообщение Aheir »

Насколько я помню, там стоит дисплей без контроллера, функции генерации управляющих последовательностей для этого индикатора возложены на "набортный" контроллер ЖКИ, содержащийся в меге.
Оптимизм х (Опыт + Знания) = const
Аватара пользователя
Spirit412
Встал на лапы
Сообщения: 125
Зарегистрирован: Пн авг 04, 2008 10:54:11
Откуда: Питер
Контактная информация:

Сообщение Spirit412 »

Aheir писал(а):Насколько я помню, там стоит дисплей без контроллера, функции генерации управляющих последовательностей для этого индикатора возложены на "набортный" контроллер ЖКИ, содержащийся в меге.
грубо говоря... мега выполняет также и функции контроллера?
блин... обидно...
просто к батерфляю исходники все на СИ... а я только начинаю изучать программирование. Осваиваю Ассемблер...
Может есть у кого пример вывода информации какой либо... на ЖК батерфляя... но на АССЕМБЛЕРЕ????????
Аватара пользователя
Lestat
Встал на лапы
Сообщения: 111
Зарегистрирован: Сб мар 31, 2007 13:53:07
Откуда: Lviv
Контактная информация:

Re: Изменение скорости мигиния диода через меню на LCD

Сообщение Lestat »

Spirit412 писал(а): как написать что-то типа меню управления частотой мигания диода... т.е. длительность горения в милисек и длительностью паузы когда диод выключен... выбираем в меню нужный параметр, устанавливаем значение... и сохраняем....через меню?
я делеал бы так:
int pause;
int work;
...
...
...
в меню задаем pause и work.
потом
начало:
PORTB.0=0;
for(i=1;i<=pause;i++) delay_ms(1);
PORTB.0=1;
for(i=1;i<=work;i++) delay_ms(1);
на начало
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»