реклама на сайте
подробности

 
 
> Меню на LCD 16х2 (Си WinAVR)+5кнопок, Как организовать меню , принцип
Кастусь Рыжов
сообщение Aug 9 2009, 15:12
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 80
Регистрация: 16-07-07
Из: Беларусь, г.Гомель
Пользователь №: 29 165



Нужно написать меню на Си, Атмега16 +5кнопок +ЖКИ 16х2
Меня интересует сам принцип организации меню и какие средства языка Си лучше использовать для написания меню
Опыта в Си мизер, ткните пальцем для направления верного или может у кого наработки есть, поделитесь для примера, посмотреть исходник. Заранее спасибо всем откливнувшимся. (использую Си компилятор WinAVR и AVR Studio)
ЗЫ: может не умею искать, но поис по форуму у меня не увенчался успехом smile3046.gif


--------------------
Прибор должен работать не в принципе, а в корпусе!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Scanner
сообщение Sep 7 2009, 19:58
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 355
Регистрация: 23-07-08
Из: Пензенская область
Пользователь №: 39 157



Цитата(zltigo @ Aug 9 2009, 20:33) *
Тогда продолжайте учиться искать. Тема на этом форуме избитая, не говоря уже о AVR-овском Butterfly

Тоже не смог найти темы - помогите ссылками! Заранее спасибо.
Go to the top of the page
 
+Quote Post
Legotron
сообщение Sep 8 2009, 14:04
Сообщение #3


инопланетянин
***

Группа: Свой
Сообщений: 236
Регистрация: 24-12-06
Из: Питер
Пользователь №: 23 832



Цитата(Scanner @ Sep 7 2009, 23:58) *
Тоже не смог найти темы - помогите ссылками! Заранее спасибо.

Внесу свои 5 копеек.
Я решал задачу построения и обработки меню следующими способами:
1 способ - аля AVR Butterfly
Качаете исходники и по 5 раз перечитываете их в отношении меню (я именно так и делал, когда-то давно, сразу понять принцип было тяжело smile.gif ) но у меня был сам батерфлай, поэтому мне было проще.
Какие плюсы на мой взгляд:
1. Красивая организация кода
2. Достаточно просто прослеживается логика
3. Всё написано на чистом С
2 способ - жесткий самопал smile.gif
Подходит для совсем маленьких меню, ~10-20 пунктов.
Просто пишите конструкции switch, if, else
Для простых меню, которые не подразумевается расширять - то что надо, писать быстро, код получается читабельным (повторюсь, только для маленьких меню!)
3 способ - мой любимый biggrin.gif (да простят меня гуру) - Visual State Machine
IAR Visual State
Quantum Leaps (сложнее и мощнее)
Начну с плюсов на примере IAR VS:
Если не брать в расчет сколько времени нужно потратить чтобы ваш конечный автомат заработал нормально, ощущение когда всё правильно работает с Deep-state и Shallow-state логикой - просто поросячий восторг!!!
Рисуете графическую UML-диаграмму своего меню (оооо-да всё перед глазами, сразу видно biggrin.gif , несомненный плюс)
Симулируете свою диаграмму в реальном времени!!! просто жмёте кнопки событий, видите как работают таймеры таймаутов и прочие-прочие сладости..
Отлаживаете свою диаграмму в железе в IAR-e, я так отладил коммуникационный протокол по RS-485 прямо под JTAG. Тоже детский восторг вызывает, скажу честно.
Всё что вам нужно - это добавить несколько авто-сгенерированных файлов в свою программу и немного во всё это воткнуться...
Также поддерживает C++.. там тоже есть прелести..
Есть очереди, ну и многое другое, копаться можно долго.
Минусы я вижу в том что это слишком долго настраивается и изучается, по сравнению со способом 2 день и ночь.
Также возможны трудно уловимые баги самой программы, на которые можно наткнуться..
Вообщем сейчас уже этой штукой не пользуюсь для меню, но время потраченное на ее освоение не жаль, если бы мне приходилось очень часто писать конечные автоматы, я бы по сей день бы пользовался, а так многое забывается и приходиться тратить слишком много времени на то, чтобы вспомнить.

P.S. Вообщем, мои 5 копеек smile.gif

Добавлено:
Не подумайте что IAR VS можно использовать только с IAR! просто в ИАРе есть дебаггер для визуал стэйт. А так подходит для любых ANSI C компиляторов.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Кастусь Рыжов   Меню на LCD 16х2 (Си WinAVR)+5кнопок   Aug 9 2009, 15:12
- - zltigo   Цитата(Кастусь Рыжов @ Aug 9 2009, 18:12)...   Aug 9 2009, 16:33
- - _Pasha   Меню - разные бывают. Чаще в таких случаях - редак...   Aug 9 2009, 16:35
- - Vishv   Да не нужно искать специальные средства языка - их...   Aug 9 2009, 16:42
- - Кастусь Рыжов   Народ, извиняюсь за размножение избитых тем. сильн...   Aug 9 2009, 17:01
|- - zltigo   Цитата(Кастусь Рыжов @ Aug 9 2009, 20:01)...   Aug 9 2009, 17:25
|- - ZVE   Цитата(Кастусь Рыжов @ Aug 9 2009, 20:01)...   Aug 9 2009, 17:38
- - ARV   я для многих проектов с меню приспособился делать ...   Aug 9 2009, 17:48
|- - zltigo   Цитата(Legotron @ Sep 8 2009, 16:04) если...   Sep 8 2009, 14:28
|- - Dog Pawlowa   А я вот пришел к макросам описания состояний и дов...   Sep 8 2009, 14:45
|- - mempfis_   Делал довольно разветвлённые меню путём организаци...   Sep 8 2009, 15:08
|- - _Pasha   Цитата(mempfis_ @ Sep 8 2009, 18:08) Дела...   Sep 9 2009, 05:50
- - Legotron   Цитата(zltigo @ Sep 8 2009, 18:28) воздей...   Sep 8 2009, 15:20
|- - zltigo   Цитата(Legotron @ Sep 8 2009, 17:20) В да...   Sep 8 2009, 15:29
|- - Dog Pawlowa   Цитата(Legotron @ Sep 8 2009, 18:20) К ма...   Sep 8 2009, 17:20
- - Legotron   Цитата(zltigo @ Sep 8 2009, 19:29) Шла, д...   Sep 8 2009, 15:37


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 12:14
Рейтинг@Mail.ru


Страница сгенерированна за 0.01392 секунд с 7
ELECTRONIX ©2004-2016