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