Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Слияние 6+ автоматов

630  1 2 все
Murr патриот04.12.13 16:28
Murr
NEW 04.12.13 16:28 
Ну это снова Я со своими вопросиками...
Наверное уже все знают, что все программирование суть есть построение автомата с большим числом состояний... и кучей ошибок...
Кто не знает - продолжайте изучать свою рабочую область и применяемый в ней мат.аппарат - там все сведется к тому что описано...
И так ситуация.
Система на PICе - т.е. ресурсов - мало, процессов - достаточно (для PIC-контроллера) много.
В текущей ситуации нужно контролировать нажатие нескольких кнопок, обмен с SD Card и вывод на дисплей. В дальнейшем - усложнится - добавится еще обмен по сети.
Требования - система должна давать отклик в приемлемое время и быть неубиваемой.
Про неубиваемую систему - понятно - автомат, учитывающий все возможные состояния и коминации сигналов...
4 автомата - по одному на процесс - Я слепил. Вроде все работает. Но... не устраивает.
Дело в том, что это именно 4 автомата. Изменения/добавления в одном другие вроде не затрагивают, но когда изменяется продолжительность цикла одного из автоматов - остальные выходят из синхронизации и начинается бардак с головной болью...
В общем - надо сливать все в один автомат и смотреть что там получится.
Вопросик такой - какие есть тулузки для:
- быстрой эмуляции автомата
- слияния 2-х и более автоматов
- дампа приличного Си-шного кода автомата.
З.Ы. Lex, FLex, Yacc & Ragel - знаю, не устраивают.
#1 
  Posmotrim постоялец04.12.13 17:59
Posmotrim
NEW 04.12.13 17:59 
в ответ Murr 04.12.13 16:28
>> - слияния 2-х и более автоматов
а как ты себе это представляешь, если у каждого автомата своё собственное состояние?
#2 
Murr патриот04.12.13 21:01
Murr
NEW 04.12.13 21:01 
в ответ Posmotrim 04.12.13 17:59
А как ортогональное произведение...
Проблема в том, что оно не влезет в PIC...
#3 
  Quo Vadis патриот04.12.13 22:43
Quo Vadis
NEW 04.12.13 22:43 
в ответ Murr 04.12.13 16:28
попробуй RTOS..например мы используем TN Kernel..
на офицальном сайте даже есть документация, как запустить TN Kernel на PIC24..
OC работает на ура, синхронизация tasks посредством симафоров, мютехов, различные event-системы , управление памятью и многое другое
наши контроллеры успевают в 10 раз больше сделать , чем то что описал ты и всё работает суперски синхроно и без сбоев:
сама программа , два CAN контроллера, Ethernet, UART, IO , SPI два канала по нескольку clients на канал, I2C, ADC и прочее
#4 
Murr патриот04.12.13 23:48
Murr
NEW 04.12.13 23:48 
в ответ Quo Vadis 04.12.13 22:43
Нее, не буду... Просто некогда все это изучать...
Все, что требуется - слить автоматы...
#5 
Murr патриот04.12.13 23:52
Murr
NEW 04.12.13 23:52 
в ответ Quo Vadis 04.12.13 22:43
П.С. Я не очень хочу писать код с семафорами и прочим - предпочту имплементировать именно автомат и потом доопределять состояния и переходы...
#6 
  joldosch знакомое лицо05.12.13 18:56
joldosch
NEW 05.12.13 18:56 
в ответ Murr 04.12.13 16:28, Сообщение удалено 08.12.13 22:33 (digital.pilot)
#7 
Murr патриот05.12.13 22:24
Murr
NEW 05.12.13 22:24 
в ответ joldosch 05.12.13 18:56
Не проблема - продолжай изучать используемый мат.аппарат...
#8 
svd71 завсегдатай08.12.13 12:00
NEW 08.12.13 12:00 
в ответ Murr 04.12.13 16:28
попробуй в этом плане Proteus. Сложную систему конечно сложно симулировать, но часто именно в плане синхронизасии железяк на этапе проектирования мне и помогает.
#9 
modul83 прохожий16.12.13 16:36
modul83
NEW 16.12.13 16:36 
в ответ Murr 04.12.13 16:28
Всё успевает если обрабатывать внешний сигнал через прерывания. Хоть 10 кнопок одновременно. Я на пике 16f877A разную блудь в последнее время собираю, так он на кварце в 20 мегов такую скорость обработки выдаёт... Только писать на низком уровне нужно, а то стек в стену упрётся, если не проконтролируешь его.
#10 
modul83 прохожий16.12.13 16:39
modul83
16.12.13 16:39 
в ответ Murr 04.12.13 16:28
Ты, я так понял, хочешь некоторую пародию на ModBus состряпать и какую-нибудь визуализацию повесить, типа скады да ещё чтоб и како-нибуть лог вести??? Никак теплицей какой-нибудь порулить захотел???
#11 
modul83 прохожий16.12.13 16:52
modul83
NEW 16.12.13 16:52 
в ответ Murr 04.12.13 16:28
Хотя, сейчас глянул - ты ведь на 18-ом PICе будешь делать, всё что тебе нужно аппаратно реализовано начиная с 18-х. там стека 31 уровень. Пиши на чём привык. Только внешний сигнал через прерывания обрабатывай. Можешь ещё и индикацию на него повесить, если капыт у него хватит, всё равно успеет!!!
#12 
modul83 прохожий16.12.13 16:54
modul83
16.12.13 16:54 
в ответ Murr 04.12.13 16:28
PIC Simulator IDE - просто и соответствует реальности. Не найдёшь - пиши адрес, скину архив.
#13 
Murr патриот16.12.13 22:40
Murr
NEW 16.12.13 22:40 
в ответ svd71 08.12.13 12:00
Про <Proteus> Я слышу давно, но руки не доходят посмотреть... да и работы по железу слишком мало что бы новую систему изучать - <PCAD>а хватит...
#14 
Murr патриот16.12.13 22:51
Murr
NEW 16.12.13 22:51 
в ответ modul83 16.12.13 16:36
У меня - <PIC24FJ64GB108>... работодатель думает об замене на <PIC24FJ256GB108>... по мне так лишнее - под то что надо слепить хватит и маленького...
если обрабатывать внешний сигнал через прерывания.
-----
Хорошо бы что бы кто-то сказал это прозводителю - там практически нет прерываний в библиотеках... а писать всю обработку <FAT> на <SD Card> мне совершенно не хочется...
писать на низком уровне нужно
-----
Писаться все будет на <Pure C> - опыта более чем достаточно.
Производительность - устраивает - главное не писать явные глупости... и иногда проверять критичные места... последня оптимизация дала сокращение времени закраски экрана с 10.0 до 1.5 сек... дадут больше времени - сделаю и 0.3 сек.
#15 
Murr патриот16.12.13 22:54
Murr
NEW 16.12.13 22:54 
в ответ modul83 16.12.13 16:39
теплицей какой-нибудь порулить захотел?
-----
Немного хуже - госпиталь... точнее - гигиена и гигиеническое оборудование в госпитале - дезинфекция рук, трекинг перемещений и т.п...
#16 
Murr патриот16.12.13 22:57
Murr
NEW 16.12.13 22:57 
в ответ modul83 16.12.13 16:54
<PIC Simulator IDE>
-----
Симулятор - это хорошо. Вопрос в том поддерживает ли он мой <PIC> и что меня больше всего сейчас интересует - ремапинг пинов...
#17 
svd71 завсегдатай17.12.13 14:08
NEW 17.12.13 14:08 
в ответ Murr 16.12.13 22:40
В PCADе есть симуляция работы схемы? первый раз слышу.
Для отрисовки схем и плат использую Eagle. Там библиотек много и свои библиотеки за пару часов можно делать. Но это дело вкуса.
А вот симуляция работы более менее сносно тольков в протеусе идет. Цепляеся скомпилированный файл (будет отладда в асме) или elf(наСильные) и можно по строчкам прыгать, сигналы смотреть и прочее. На хабре вон умельцы даже USB на нем симулируют.
#18 
Murr патриот17.12.13 17:58
Murr
NEW 17.12.13 17:58 
в ответ svd71 17.12.13 14:08
В ПЦАДе есть симуляция работы схемы?
-----
Нет, разумеется - для того голова есть...
#19 
svd71 завсегдатай22.12.13 10:53
NEW 22.12.13 10:53 
в ответ Murr 17.12.13 17:58, Последний раз изменено 22.12.13 10:54 (svd71)
В ответ на:
Re: Слияние 6+ автоматов
Наверное уже все знают, что все программирование суть есть построение автомата с большим числом состояний... и кучей ошибок...

В ответ на:
Нет, разумеется - для того голова есть...

Ну если есть голова, то к чему топик создавать? Или просто всем показать, что круче вареных яиц?
#20 
1 2 все