Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Инструментарий

Инструментарий Тестеры, паяльники, осциллографы, программаторы, IDE.

Ответ
 
Опции темы Опции просмотра
Старый 01.04.2011, 12:03   #376
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 42
Сообщений: 3,577
Вес репутации: 4386/125
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от maxNTF Посмотреть сообщение
Сервис OS_Task_Replace передает управление планировщику, после этого сервиса управления может быть отдано любой задачи, не обязательно той на которую поменяли текущую?
Да.
tester вне форума   Ответить с цитированием
Старый 01.04.2011, 12:04   #377
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 42
Сообщений: 3,577
Вес репутации: 4386/125
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от Descent Посмотреть сообщение
можно ли сделать возможным изменение размеров формы программы (высота ширина) с появлением скрола???
Извиняйте, по-простому не получилось. На днях еще раз попробую.
tester вне форума   Ответить с цитированием
Старый 01.04.2011, 12:09   #378
maxNTF
Senior Member
 
Регистрация: 12.07.2007
Возраст: 36
Сообщений: 908
Вес репутации: 287/57
maxNTF is a jewel in the roughmaxNTF is a jewel in the roughmaxNTF is a jewel in the rough
По умолчанию Re: Вопросы по OSA

Как можно заменить одну задачу на другую так, чтоб мы сразу в нее попали?
В неприоритетном режиме!

Последний раз редактировалось maxNTF; 01.04.2011 в 12:26.
maxNTF вне форума   Ответить с цитированием
Старый 01.04.2011, 13:08   #379
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 42
Сообщений: 3,577
Вес репутации: 4386/125
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от maxNTF Посмотреть сообщение
Как можно заменить одну задачу на другую так, чтоб мы сразу в нее попали?
В неприоритетном режиме!
Хм, странный вопрос... Через одно место, конечно, можно попробовать. В удаляемой задаче:
Код:
    ...
    OS_EnterCriticalSection();
    OS_Task_Replace(0, New_Task);
А новую задачу начинать так:
Код:
void New_Task (void)
{
    char temp;
    temp = OS_DI();
    OS_LeaveCriticalSection());
    OS_RI(temp);
    ...
Хоть состояния прерываний и сохраняются при входе в критическую секцию, тем не менее требуется дополнительное сохранение/восстановление, т.к. неизвестно, попадаем мы в задачу, находясь в критической секции или нет.

Но вообще, мне кажется, что правильнее пересмотреть алгоритм. Уж очень сложная кракозябра получается.
tester вне форума   Ответить с цитированием
Старый 01.04.2011, 13:09   #380
maxNTF
Senior Member
 
Регистрация: 12.07.2007
Возраст: 36
Сообщений: 908
Вес репутации: 287/57
maxNTF is a jewel in the roughmaxNTF is a jewel in the roughmaxNTF is a jewel in the rough
По умолчанию Re: Вопросы по OSA

И еще один вопрос, можно ли считать, что повторный вызов сервисов OS_Queue_Create и OS_Squeue_Create, обнуляет уже созданную очередь?
maxNTF вне форума   Ответить с цитированием
Старый 01.04.2011, 13:17   #381
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 42
Сообщений: 3,577
Вес репутации: 4386/125
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от maxNTF Посмотреть сообщение
И еще один вопрос, можно ли считать, что повторный вызов сервисов OS_Queue_Create и OS_Squeue_Create, обнуляет уже созданную очередь?
Да.
tester вне форума   Ответить с цитированием
Старый 01.04.2011, 18:58   #382
spasbyspas
Junior Member
 
Регистрация: 31.05.2009
Возраст: 49
Сообщений: 9
Вес репутации: 103/0
spasbyspas will become famous soon enoughspasbyspas will become famous soon enough
По умолчанию Re: Вопросы по OSA

Здраствуйте.
Пожалуиста подскажете в чём ошибка?, компилятор CCS, ос канечьно ОСА
(проверял на CCS версии: 4.105, 4.110, 4.114)
Проблема заключается в следующем:
простой проект с одним,двумя или больше кол. тасков.
Если в хидаре прокте включить некоторые микроконтроллеры из серии PIC18F66xx или PIC18F67XX пример:

Код:
#include <18F6723.h>
Происходит после компиляции ошибка:

"Improper use of a function identifier"
на линии, где отметил OS_Task_Create, пример:
Код:
OS_Task_Create(3, Tasks_LCD_Refresh);
Если использовать другой под-тип микроконтролера, то таком уведомления нет и все работает(пример PIC18F4620).
spasbyspas вне форума   Ответить с цитированием
Старый 01.04.2011, 20:51   #383
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 42
Сообщений: 3,577
Вес репутации: 4386/125
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от spasbyspas Посмотреть сообщение
(проверял на CCS версии: 4.105, 4.110, 4.114)
Проверил, вижу, что ошибка проявляется и на 4.104, Сейчас буду разбираться.
tester вне форума   Ответить с цитированием
Старый 01.04.2011, 21:14   #384
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 42
Сообщений: 3,577
Вес репутации: 4386/125
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Вопросы по OSA

Попробуйте в файле "osa\port\pic18\osa_pic18_css.h" закомментировать строку:
#define __SMALL__

(139-я строчка)

Не понятно, правда, почему некоторые 66хх не проходят. Буду разбираться.
tester вне форума   Ответить с цитированием
Старый 01.04.2011, 21:24   #385
spasbyspas
Junior Member
 
Регистрация: 31.05.2009
Возраст: 49
Сообщений: 9
Вес репутации: 103/0
spasbyspas will become famous soon enoughspasbyspas will become famous soon enough
По умолчанию Re: Вопросы по OSA

Да, так скомпилировался безпроблемно! Спасибо! Но в чем точно проблем?
spasbyspas вне форума   Ответить с цитированием
Старый 01.04.2011, 21:28   #386
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 42
Сообщений: 3,577
Вес репутации: 4386/125
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от spasbyspas Посмотреть сообщение
Да, так скомпилировался безпроблемно! Спасибо! Но в чем точно проблем?
Для контроллеров 18Fx7xx проблема была в том, что указатель на функцию преобразовывался в 16-битное число (а должен был в 32-битное). Но что с 18F6627 - не знаю. 6620 собирается. И если в 18F6627.h заменить тип контроллера в строке #device, то тоже соберется.
tester вне форума   Ответить с цитированием
Старый 02.04.2011, 09:15   #387
spasbyspas
Junior Member
 
Регистрация: 31.05.2009
Возраст: 49
Сообщений: 9
Вес репутации: 103/0
spasbyspas will become famous soon enoughspasbyspas will become famous soon enough
По умолчанию Re: Вопросы по OSA

Да, после серьезного испытания показали, что скомпилируется, но таскы являются нерабочими.
Ето с конфиг для PIC18F6723, CCS v4.114.
С конфиг для PIC18F4523 пример все на ура!
Прошу за помош мастер!

Последний раз редактировалось spasbyspas; 02.04.2011 в 09:26.
spasbyspas вне форума   Ответить с цитированием
Старый 04.04.2011, 14:12   #388
maxNTF
Senior Member
 
Регистрация: 12.07.2007
Возраст: 36
Сообщений: 908
Вес репутации: 287/57
maxNTF is a jewel in the roughmaxNTF is a jewel in the roughmaxNTF is a jewel in the rough
По умолчанию Re: Вопросы по OSA

Есть очередь коротких сообщений, туда постепенно накапливаются сообщения, нужно ожидать появления конкретного сообщения, да еще с лимитом по времени!
Самый простой но очень не компактный способ это выберать в цикле с применением таймера!
Был бы очень удобный сервис ожидания короткого сообщения по заданной маске, а те которые не нужны удалять из очереди и игнорировать!
maxNTF вне форума   Ответить с цитированием
Старый 04.04.2011, 14:24   #389
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 42
Сообщений: 3,577
Вес репутации: 4386/125
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от maxNTF Посмотреть сообщение
Был бы очень удобный сервис ожидания короткого сообщения по заданной маске, а те которые не нужны удалять из очереди и игнорировать!
Шибко мудреный сервис получится. Да и применить его будет негде. Выкрутись лучше дополнительным таймером, что-то типа такого:
Код:
    OS_Stimer_Run(ST_Q, 100);
    do
    {
        OS_Wait(OS_Squeue_Check(squeue) || OS_Stimer_Check(ST_Q));
        if (OS_Stimer_Check(ST_Q))
        {
            // Обработка таймаута 
            break;
        }
        OS_Squeue_Accept(squeue, smsg);
    } while (smsg != ...);
Что-то у тебя все-таки не то со структурой взаимосвязей задач. Зачем отправляются ненужные сообщения в очередь?
tester вне форума   Ответить с цитированием
Старый 04.04.2011, 14:41   #390
maxNTF
Senior Member
 
Регистрация: 12.07.2007
Возраст: 36
Сообщений: 908
Вес репутации: 287/57
maxNTF is a jewel in the roughmaxNTF is a jewel in the roughmaxNTF is a jewel in the rough
По умолчанию Re: Вопросы по OSA

Смысл в чем, есть задача сканирования USART (в принципе это может быть любой сборщик данных). Все принятые данные классифицируются по типам, тип это и есть короткое сообщение. К примеру я передаю что то в порт и ожидаю ответ, в это время может прийти как ответ, так и куча других сообщений, которые меня в данный момент не интересуют, а нужно просто дождаться ответа! А в других случаях наоборот нужно просто дождаться определенных данных.
Цитата:
Сообщение от tester Посмотреть сообщение
Что-то у тебя все-таки не то со структурой взаимосвязей задач. Зачем отправляются ненужные сообщения в очередь?
Ну в общем да конечно если такой сервис проблема, более рационально задавать условия добавления сообщений и игнорировать их на этом этапе! Лишние алгоритмы в накопителе данных только немного напрягают!
maxNTF вне форума   Ответить с цитированием
Старый 13.04.2011, 18:40   #391
vesago
Junior Member
 
Регистрация: 26.02.2007
Сообщений: 26
Вес репутации: 161/48
vesago has a spectacular aura aboutvesago has a spectacular aura about
По умолчанию Re: Вопросы по OSA

Здравствуйте! Может подскажите - хочу в проекте по таймауту выходить из ветки алгоритма. Для этого хотел задействовать сервисы OS_Timer_Run (XX) и OS_Timer_Check (). Почему-то не компилируется в IARAVR, хотя с OS_Delay(50) проблем нет. Со статическими таймерами тоже не компилируется. В OSAcfg.h я активировал OS_ENABLE_TTIMERS. Работают ли данные сервисы для IARAVR.
vesago вне форума   Ответить с цитированием
Старый 13.04.2011, 23:11   #392
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 42
Сообщений: 3,577
Вес репутации: 4386/125
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от vesago Посмотреть сообщение
Здравствуйте! Может подскажите - хочу в проекте по таймауту выходить из ветки алгоритма. Для этого хотел задействовать сервисы OS_Timer_Run (XX) и OS_Timer_Check (). Почему-то не компилируется в IARAVR, хотя с OS_Delay(50) проблем нет. Со статическими таймерами тоже не компилируется. В OSAcfg.h я активировал OS_ENABLE_TTIMERS. Работают ли данные сервисы для IARAVR.
Работают, совершенно точно. Какие именно ошибки выбает IAR?
(Для работы со статическими таймерами в osacfg.h нужно объявлять еще константу OS_ENABLE_STIMERS)
tester вне форума   Ответить с цитированием
Старый 14.04.2011, 10:16   #393
vesago
Junior Member
 
Регистрация: 26.02.2007
Сообщений: 26
Вес репутации: 161/48
vesago has a spectacular aura aboutvesago has a spectacular aura about
По умолчанию Re: Вопросы по OSA

Вот что в файле конфигурации:
Код:
//------------------------------------------------------------------------------
// SYSTEM
//------------------------------------------------------------------------------
#define OS_TASKS                2   // Number of tasks that can be active at one time

//------------------------------------------------------------------------------
// ENABLE CONSTANTS
//------------------------------------------------------------------------------

#define OS_ENABLE_TTIMERS           // Enable task timers (OS_Delay and OS_xxx_Wait_TO)
А вот тестовая задачка:
Код:
void GSM_Processor(void)
{
  for(;;)
  {
    OS_Timer_Run (100);
    do
    {
      printf("AT\n");
      //OS_Delay(50);
      if(USART0_DataInReceiveBuffer() != 0)
      {
        if(strstr((const char*)&usart0.rx_buf[(usart0.rx_tail + 1) & USART0_RX_BUFFER_MASK], "OK"))
        {
          SYSTEM_LED_PORT ^= (1<<SYSTEM_LED);
        }
      }
    }while(!OS_Timer_Check (1));
    OS_Delay(100);
  }
}
При компиляции IAR выдает Warning[Pe223]: function "OS_Timer_Run" declared implicitly G:\GSMDialler\Program\v1.1.3_osa\gsm.c 70 Ну и еррор Error[e46]: Undefined external "OS_Timer_Run" referred in gsm ( G:\GSMDialler\Program\v1.1.3_osa\Debug\Obj\gsm.r90 )

Тоже и со вторым сервисом.

А вот OS_Delay(50); нормально компилится. Статические таймеры компилились. Но в данном случае что-то не заработало и железка постоянно по вачдогу сбрасывалась, т.е. управление не передавалось второй задаче, где очистка собаки. Но с этим позже буду разбираться. Если есть какие советы, буду признателен за помощь. Это мой первый опыт использования оси. Возможно что проект во многих файлах.
vesago вне форума   Ответить с цитированием
Старый 14.04.2011, 10:56   #394
vesago
Junior Member
 
Регистрация: 26.02.2007
Сообщений: 26
Вес репутации: 161/48
vesago has a spectacular aura aboutvesago has a spectacular aura about
По умолчанию Re: Вопросы по OSA

Так с компиляцией разобрался. Надо было ставить OS_Ttimer_XX вместо OS_Timer_XX. Но дивайс все равно перегружается. Видно долго висит в задаче GSM_Processor и вачдог сбрасывает. Если оставить просто сервис OS_Delay(100); то работает. Может я что-то не понимаю? Вроде разобрался. Получается это просто таймеры и в отличии от OS_Delay ни какого влияния на планировщик не оказывают?

Последний раз редактировалось vesago; 14.04.2011 в 11:14.
vesago вне форума   Ответить с цитированием
Старый 14.04.2011, 12:15   #395
vesago
Junior Member
 
Регистрация: 26.02.2007
Сообщений: 26
Вес репутации: 161/48
vesago has a spectacular aura aboutvesago has a spectacular aura about
По умолчанию Re: Вопросы по OSA

Разобрался - все работает.
Код:
void GSM_Processor(void)
{
  for(;;)
  {
    printf("AT\n");
    OS_Delay(50);
    OS_Ttimer_Run(100);
    do
    {
      if(USART0_DataInReceiveBuffer() != 0)
      {
        if(strstr((const char*)&usart0.rx_buf[(usart0.rx_tail + 1) & USART0_RX_BUFFER_MASK], "OK"))
        {
          SYSTEM_LED_PORT ^= (1<<SYSTEM_LED);
        }
      }
    }while(OS_Ttimer_Check () == 0);
/*
      printf("AT\n");
      OS_Delay(50);
      OS_Ttimer_Run(100);
      if(OS_Ttimer_Check() == 0)
      {
        if(USART0_DataInReceiveBuffer() != 0)
        {
          if(strstr((const char*)&usart0.rx_buf[(usart0.rx_tail + 1) & USART0_RX_BUFFER_MASK], "OK"))
          {
            SYSTEM_LED_PORT ^= (1<<SYSTEM_LED);
          }
        }
      }
      OS_Ttimer_Delay(200)
*/
  }
}
vesago вне форума   Ответить с цитированием
Старый 22.04.2011, 15:08   #396
maxNTF
Senior Member
 
Регистрация: 12.07.2007
Возраст: 36
Сообщений: 908
Вес репутации: 287/57
maxNTF is a jewel in the roughmaxNTF is a jewel in the roughmaxNTF is a jewel in the rough
Question Re: Вопросы по OSA

В сервис OS_Wait можно в качестве условия воткнуть функцию?
Пр.
OS_Wait(pt_temp = (uchar *)strpbrkrampgm(string_begin, "\r\n"));
maxNTF вне форума   Ответить с цитированием
Старый 22.04.2011, 15:11   #397
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 42
Сообщений: 3,577
Вес репутации: 4386/125
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от maxNTF Посмотреть сообщение
В сервис OS_Wait можно в качестве условия воткнуть функцию?
Пр.
OS_Wait(pt_temp = (uchar *)strpbrkrampgm(string_begin, "\r\n"));
Да. (Только не спутай = и ==)
tester вне форума   Ответить с цитированием
Старый 22.04.2011, 15:19   #398
maxNTF
Senior Member
 
Регистрация: 12.07.2007
Возраст: 36
Сообщений: 908
Вес репутации: 287/57
maxNTF is a jewel in the roughmaxNTF is a jewel in the roughmaxNTF is a jewel in the rough
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от tester Посмотреть сообщение
Да. (Только не спутай = и ==)

Не там как раз =
Переменную pt_temp нужно static сделать?
Ее значение сразу после выполнения условия сохраняется в глобальную переменную, но только что там с ней может в планировщике произойти?

Код:
OS_Wait(pt_temp = (uchar *)strpbrkrampgm(string_begin, "\r\n"));
g_pt_string = pt_temp + 2;
maxNTF вне форума   Ответить с цитированием
Старый 22.04.2011, 15:53   #399
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 42
Сообщений: 3,577
Вес репутации: 4386/125
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от maxNTF Посмотреть сообщение
Переменную pt_temp нужно static сделать?
Нет, можно оставить авто.
tester вне форума   Ответить с цитированием
Старый 12.05.2011, 18:33   #400
maxNTF
Senior Member
 
Регистрация: 12.07.2007
Возраст: 36
Сообщений: 908
Вес репутации: 287/57
maxNTF is a jewel in the roughmaxNTF is a jewel in the roughmaxNTF is a jewel in the rough
По умолчанию Re: Вопросы по OSA

Где устанавливается флаг bTimeout для активного таймера очереди?
maxNTF вне форума   Ответить с цитированием
Ответ

Метки
osa, rtos, сторожевой таймер


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Все вопросы по MikroC shnitz Инструментарий 971 23.09.2016 13:22
Статья по RTOS OSA tester Продукция MICROCHIP 12 24.02.2009 12:04
16F690, вопросы по timer1 и встроенному 32кГц-генератору e_glu Продукция MICROCHIP 3 29.01.2009 17:14
Есть вопросы по алгоритму работы устройства на пике. 40grad Продукция MICROCHIP 9 27.10.2007 15:55
Пишу руководство по RS485 и есть вопросы pvl2000 Cетевые протоколы и технологии 2 16.04.2007 00:57


Часовой пояс GMT +3, время: 22:37.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot