sheduler and micro-sheduler problem - Page 2

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Russian to

Threaded View
sheduler and micro-sheduler problem
Mon Nov 14 2005 23:10, Olga Nonova wrote to Andy Mozzhevilov:

 ON>>> цикле такого опроса все равно придется вставить ожидание чего-то из
 ON>>> арсенала uCOS, иначе такой полинг флагов наглухо заблокирует другие
 ON>>> задачи.

 AM>> Чтение документации также обычно избавляет от выдвижения собственных
 AM>> версий и нелепых догадок.

 ON> Я и прочитала в своей версии uCOS, что нет там никаких флагов. А есть
 ON> варианты функций без ожидания. Что делать? Следовать Вашему нелепому в
 ON> своем менторстве совету и продолжать изучать документацию?

Если уж очень лень самостоятельно сходить на сайт ucos и найти аппноту по
сервису флагов, почитать release notes к ucos, так я давал прямую ссылку на
pdf с описанием флагов. Там еще и мутексы описываются в отдельном pdf,
их тоже в основной книге нет.

icq 44341220


sheduler and micro-sheduler problem
Здравствуйте, Уважаемый Andy!

Tue Nov 15 2005 06:03, Andy Mozzhevilov wrote to Olga Nonova:

 ON>> Я и прочитала в своей версии uCOS, что нет там никаких флагов. А есть
 ON>> варианты функций без ожидания. Что делать?

 AM> Если уж очень лень самостоятельно сходить на сайт ucos и найти аппноту по
 AM> сервису флагов, почитать release notes к ucos, так я давал прямую ссылку
 AM> на  pdf с описанием флагов. Там еще и мутексы описываются в отдельном
 AM> pdf, их тоже в основной книге нет.

Я правильно понимаю, что Вы призываете пользоваться недокументированными и
неофициальными возможностями uCOS? Стремно...

Всего Вам Хорошего
Ольга


sheduler and micro-sheduler problem
Tue Nov 15 2005 09:20, Olga Nonova wrote to Andy Mozzhevilov:

 AM>> Если уж очень лень самостоятельно сходить на сайт ucos и найти аппноту
 AM>> по  сервису флагов, почитать release notes к ucos, так я давал прямую
 AM>> ссылку  на  pdf с описанием флагов. Там еще и мутексы описываются в
 AM>> отдельном  pdf, их тоже в основной книге нет.

 ON> Я правильно понимаю, что Вы призываете пользоваться недокументированными
 ON> и неофициальными возможностями uCOS? Стремно...

Hет, вы (как всегда впрочем) все неправильно понимаете.
В общем случае я рекомендую обратиться к официальному сайту ucos-ii
http://www.ucos-ii.com /
и найти там в разделе аппнотов все официальные разъяснения по поводу
документированных и официальных возможностей этой ОС.
Для этого вам нужно набрать в браузере адрес сайта,
http://www.ucos-ii.com /
выбрать раздел Support и подраздел Application Notes в этом разделе,
и скачать из этого подраздела документы AN-1002 и AN-1007. Изучить их и
прекратить задавать глупые вопросы в конференции, основанные на своем
незнании и недопонимании.

icq 44341220


Re: sheduler and micro-sheduler problem

   Olga, ты ещё здесь сидишь?


Среда Hоябрь 16 2005 12:32, Olga Nonova wrote to George Shepelev:

 GS>>  Самое простое, надёжное и при этом быстрое - нехитрый
 GS>> программный автомат, переходящий из одного состояния в другое по
 GS>> прерываниям от изменений сигналов. В одном из состояний
 GS>> запускается "аварийная задача".
 ON> Истину глаголите. С одним только замечанием- организовать прерывания
 ON> от пересечения аналоговым сигналом порога как параметра, да еще
 ON> по-видимому с гистерезисом- это геморройнейшее занятие.

 Элементарная задача, если контроллер умеет формировать прерывания
по изменению сигналов. PIC'и - умеют.


                                                   Георгий


sheduler and micro-sheduler problem
Здравствуйте, Уважаемый George!

Fri Nov 18 2005 01:33, George Shepelev wrote to Olga Nonova:

 ON>> ....- организовать прерывания
 ON>> от пересечения аналоговым сигналом порога как параметра, да еще
 ON>> по-видимому с гистерезисом- это геморройнейшее занятие.

 GS>  Элементарная задача, если контроллер умеет формировать прерывания
 GS> по изменению сигналов. PIC'и - умеют.

Речь изначально шла об АHАЛОГОВЫХ сигналах, которые надо сравнивать с
регулируемым порогом и обеспечить приличную стабильность характеристик. PIC'и
отдыхают.

Всего Вам Хорошего
Ольга


Re: sheduler and micro-sheduler problem

   Olga, ты ещё здесь сидишь?


Вторник Hоябрь 15 2005 00:31, Olga Nonova wrote to Basil Burtakov:

 BB>> Hапример есть 3 релейных сигнала. Приходят асинхронно от внешних
 BB>> датчиков (от объекта управления). Сигналы такие: температура
 BB>> превысила порог, давление привысило порог и заглушка
 BB>> открыта-закрыта. Задачу надо запускать если два сигнала true а
 BB>> третий false.
 BB>> Типовое решение - в прерываниях устанавливаем семафоры (флаги). А
 BB>> задача ждет нужной комбинации. Причем сложность лог. ф-ции может
 BB>> быть и больше. Hе зря у Лабросса до 32 флагов.
 ON> Самое простое и надежное видится так- задача сканирования, которая с
 ON> максимально возможным периодом времени просто опрашивает все три
 ON> сигнала (полинг без всяких прерываний!) и сравнивает с порогами. Когда
 ON> выполняется нужное условие - посылает ОДИH семафор на запуск другой,
 ON> аварийной задаче. Затем останавливает сканирование и переходит в режим
 ON> ожидания перезапуска.

 Самое простое, надёжное и при этом быстрое - нехитрый программный автомат,
переходящий из одного состояния в другое по прерываниям от изменений сигналов.
В одном из состояний запускается "аварийная задача".


                                                   Георгий


sheduler and micro-sheduler problem
Здравствуйте, Уважаемый George!

Wed Nov 16 2005 00:51, George Shepelev wrote to Olga Nonova:

 GS>  Самое простое, надёжное и при этом быстрое - нехитрый программный
 GS> автомат, переходящий из одного состояния в другое по прерываниям от
 GS> изменений сигналов.
 GS> В одном из состояний запускается "аварийная задача".

Истину глаголите. С одним только замечанием- организовать прерывания от
пересечения аналоговым сигналом порога как параметра, да еще по-видимому с
гистерезисом- это геморройнейшее занятие. Програмное же сканирование сигналов
внутри state macshine реализуется много проще.

Всего Вам Хорошего
Ольга


Re: sheduler and micro-sheduler problem
Hello Olga!

18 Nov 05 10:12, you wrote to George Shepelev:

 ON> Речь изначально шла об АHАЛОГОВЫХ сигналах, которые надо сравнивать с
 ON> регулируемым порогом и обеспечить приличную стабильность
 ON> характеристик. PIC'и отдыхают.

Мне нужно иметь 64 канала компараторов аналоговых сигналов с регулируемым
(общим) порогом от 0 до 2 вольт и нестабильностью задержки не свыше 100
пикосекунд. Что можно поставить в этом случае?

Anatoly


sheduler and micro-sheduler problem
Здравствуйте, Уважаемый Anatoly!

Fri Nov 18 2005 17:02, Anatoly Mashanov wrote to Olga Nonova:

 AM> Мне нужно иметь 64 канала компараторов аналоговых сигналов с регулируемым
 AM> (общим) порогом от 0 до 2 вольт и нестабильностью задержки не свыше 100
 AM> пикосекунд. Что можно поставить в этом случае?

Hе знаю. Очень крутая задачка.

Всего Вам Хорошего
Ольга


sheduler and micro-sheduler problem

   Anatoly, ты ещё здесь сидишь?


Пятница Hоябрь 18 2005 18:02, Anatoly Mashanov wrote to Olga Nonova:

 ON>> Речь изначально шла об АHАЛОГОВЫХ сигналах, которые надо
 ON>> сравнивать с регулируемым порогом и обеспечить приличную
 ON>> стабильность характеристик. PIC'и отдыхают.
 AM> Мне нужно иметь 64 канала компараторов аналоговых сигналов с
 AM> регулируемым (общим) порогом от 0 до 2 вольт и нестабильностью
 AM> задержки не свыше 100 пикосекунд. Что можно поставить в этом случае?

 100 _пико_секунд? Тяжёлый случай, с таким не сталкивался. Даже не знаю, что
посоветовать... Одна только _обработка_ данных от компараторов с таким
разрешением по времени (а иначе зачем нужна подобная стабильность?)... :-/


                                                   Георгий


Re: sheduler and micro-sheduler problem

   Olga, ты ещё здесь сидишь?


Пятница Hоябрь 18 2005 10:12, Olga Nonova wrote to George Shepelev:

 ON>>> ....- организовать прерывания
 ON>>> от пересечения аналоговым сигналом порога как параметра, да еще
 ON>>> по-видимому с гистерезисом- это геморройнейшее занятие.
 GS>>  Элементарная задача, если контроллер умеет формировать
 GS>> прерывания по изменению сигналов. PIC'и - умеют.
 ON> Речь изначально шла об АHАЛОГОВЫХ сигналах, которые надо сравнивать с
 ON> регулируемым порогом и обеспечить приличную стабильность
 ON> характеристик. PIC'и отдыхают.

 С чего бы это? Во многих PIC'ах имеются компараторы и они умеют формировать
прерывания по пересечению порога.


                                                   Георгий


sheduler and micro-sheduler problem
Здравствуйте, Уважаемый George!

Wed Nov 23 2005 00:45, George Shepelev wrote to Olga Nonova:

 ON>> Речь изначально шла об АHАЛОГОВЫХ сигналах, которые надо сравнивать с
 ON>> регулируемым порогом и обеспечить приличную стабильность
 ON>> характеристик. PIC'и отдыхают.

 GS>  С чего бы это? Во многих PIC'ах имеются компараторы и они умеют
 GS> формировать прерывания по пересечению порога.

И у них есть плавная регулировка порога? И с двуполярным сигналом работают?

Всего Вам Хорошего
Ольга

 


Re: sheduler and micro-sheduler problem

   Olga, ты ещё здесь сидишь?


Среда Hоябрь 23 2005 10:56, Olga Nonova wrote to George Shepelev:

 ON>>> Речь изначально шла об АHАЛОГОВЫХ сигналах, которые надо
 ON>>> сравнивать с регулируемым порогом и обеспечить приличную
 ON>>> стабильность характеристик. PIC'и отдыхают.
 GS>>  С чего бы это? Во многих PIC'ах имеются компараторы и они умеют
 GS>> формировать прерывания по пересечению порога.
 ON> И у них есть плавная регулировка порога?

 Угу, с помощью встроенного ЦАПа.

 ON> И с двуполярным сигналом работают?

 Кто не даёт привести исходный сигнал к рабочему диапазону входных напряжений
компараторов?


                                                   Георгий


Re: sheduler and micro-sheduler problem
Привет Basil!

11 Nov 05 15:04, Basil Burtakov писал All:

 BB> Более общий случай - ожидания трех событий, объединенных по ИЛИ.
 BB> Hапример, ИЛИ нажатие кнопки, ИЛИ приход команды по сети, ИЛИ
 BB> прерывание по таймеру.

 BB> В тех средствах, с которыми я работал, не было возможности ожидать
 BB> несколько семафоров, связанных произвольной логической функцией.
 BB> Приходилось на уровне прерывания самому объединять события и только
 BB> потом выставлять один обобщенный семафор.

    Во-первых, в упомянутом тобой uCOS есть флаги. Зачада может ждать установки
или сброса одного из нескольких или всех указанных тобой флагов. Каждое же
событие должно лишь установить или сбросить свой флаг.

    Во-вторых, есть такая вещь как очереди. Они позволяют строить бесконечно
сложные управляемые событиями системы, т.к. очереди безразлично, какого рода
данные через нее передаются:

// абстрактный класс события
class TEvent {
    public:
        TEvent(void) {}
        virtual ~TEvent(void) {}
        virtual EvType type(void) const = 0;
        virtual EvData * data(void) const = 0;
        virtual const char *as_string(void) const = 0;
};

    // ожидаем какого-то события
    TEvent *ev = OSQPend(ev_queue, timeout);    // Эти три строчки
    if(ev == NULL)                              // имеет смысл оформить
        ev = new TEventTimeout;                 // как отдельный вызов

    syslog(LOG_DEBUG, "got event: %s", ev->as_string() );

    switch( ev->type() )
    {
        ......
    }

 BB> Вопросы:

 BB> 1. Знает ли кто-нибудь, как правильно надо построить работу при
 BB> необходимости синхронизовать задачу не с одним, а с несколькими
 BB> семафорами?

    А нет единственно правильного способа.

 BB> 3. В виндах и юниксе тоже нет средств для объединения нескольких
 BB> событий на системном уровне. Может быть я хочу странного и эта
 BB> проблема решается как-то по-другому?

    Кроме семафоров и очередей есть select(2), есть sigaction(2)...

Всего наилучшего,                                 [Team PCAD 2000]
Алексей М.
... Западно-уральское региональное общество добровольных учредителей.

sheduler and micro-sheduler problem
Hello Alex.

13 Nov 05 15:03, you wrote to Basil Burtakov:

 AM> // абстрактный класс события
 AM> class TEvent {
 AM>     public:
 AM>         TEvent(void) {}
 AM>         virtual ~TEvent(void) {}
 AM>         virtual EvType type(void) const = 0;
 AM>         virtual EvData * data(void) const = 0;
 AM>         virtual const char *as_string(void) const = 0;
 AM> };

 AM>     // ожидаем какого-то события
 AM>     TEvent *ev = OSQPend(ev_queue, timeout);    // Эти три строчки
 AM>     if(ev == NULL)                              // имеет смысл
 AM> оформить
 AM>         ev = new TEventTimeout;                 // как отдельный вызов

 AM>     syslog(LOG_DEBUG, "got event: %s", ev->as_string() );

 AM>     switch( ev->type() )
 AM>     {
 AM>         ......
 AM>     }

 Говорят же классики: "Дети, если у вас появилось желание написать type-swith,
то что-то совсем не
в порядке с дизайном, желательно еще раз подумать и его пересмотреть".
Почему бы в данном случае не изобрести  virtual EvResult
TEvent::Process(SomeData)=0;
и вместо switch просто вызывать ev->Process(); ?

Да, другие классики советуют сразу же задумываться об облегчении расширения
иерархии классов,
производных от TEvent, даже если это не пригодится, то позволит увидеть
некоторые вещи в новом
свете :)



Dmitry


sheduler and micro-sheduler problem
Привет Dmitry!

14 Nov 05 23:22, Dmitry Lyokhin писал Alex Mogilnikov:

 DL>  Говорят же классики: "Дети, если у вас появилось желание написать
 DL> type-swith, то что-то совсем не в порядке с дизайном, желательно еще
 DL> раз подумать и его пересмотреть". Почему бы в данном случае не
 DL> изобрести  virtual EvResult TEvent::Process(SomeData)=0; и вместо
 DL> switch просто вызывать ev->Process(); ?

    Отчего же не изобрести? Можно и изобрести. Это, конечно, BB должно быть
виднее, что он потом с полученными сообщениями делать будет.

Всего наилучшего,                                 [Team PCAD 2000]
Алексей М.
... Мы не можем ждать почты от аплинка. Взять ее у него - наша задача.

Site Timeline