Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Розробка GSM-сигналізації

Реферат Розробка GSM-сигналізації





нного миготіння світлодіодів (в них також виконується ініціалізація GSM модуля SIM900 якщо вона проходить неуспішно, може повторюватися кілька разів, і виконується перевірка необхідності спрацьовування виходу), завдання зчитування температури і номери з пристроїв 1 wire:

(vTaskLED1, (signed char *)

" LED1, configMINIMAL_STACK_SIZE, NULL, 2, amp; xTaskXandleSvet); (vTaskLED2, (signed char *)

" LED2, configMINIMAL_STACK_SIZE, NULL, 1, (xTaskHandle *) NULL); (vInitUSB, (signed char *)

" InitUSB, configMINIMAL_STACK_SIZE, NULL, 3

(xTaskHandle *) NULL); (vInitOwire, (signed char *)

" InitOwire, configMINIMAL_STACK_SIZE, NULL, 1, (xTaskHandle *) NULL); (vOwireNomer, (signed char *)

" OwireNomer, configMINIMAL_STACK_SIZE, NULL, 2, (xTaskHandle *) NULL); (vObrabUstADC, (signed char *)

" ObrabUstavok, configMINIMAL_STACK_SIZE, NULL, 1, (xTaskHandle *) NULL); (vObrVhodov, (signed char *)

" vObrabVhodov, configMINIMAL_STACK_SIZE, NULL, 1, (xTaskHandle *) NULL); (vOtpravSMS, (signed char *)

" OtpravSms, configMAXIMAL_STACK_SIZE, NULL, 2, amp; OtpSoobSim); (); - запускаємо планувальник

дозволяє досить гнучко управляти пріоритетами виконання завдань, дозволяє призупинити або вивантажити задачу з черги планувальника або змінити її пріоритет в ході її виконання, або з іншої задачі використовуючи її хендл і містить додаткові функції таймери, черги, семафори. Хендл або опис - кожній задачі задається свій номер по якому ОСРВ розпізнає поточну виконувану задачу, цей номер і є хендл завдання, наприклад для задачі відправки SMS хендлом є OtpSoobSim-вказавши його з іншої задачі ми можемо змінити її пріоритет чи призупинити виконання. ОСРВ підтримує три типи багатозадачності: витісняючу, кооперативну, гібридну. Всі основні настройки ОСРВ знаходяться у файлі FreeRTOSconfig. h:

# defineconfigUSE_PREEMPTION 1-встановили багатозадачність, кожне завдання виконується протягом одного кванта часу планувальника, в проекті цей квант #define configTICK_RATE_HZ ((portTickType) тисячі) дорівнює 1мілісекунду. Для кожної створеної нами задачі виділяється стек розмір якого #define configMINIMAL_STACK_SIZE ((unsigned short) 100) дорівнює 200 байт. Для роботи ОСРВ виділяється область пам'яті, під всі завдання та механізми, в купі рівний configTOTAL_HEAP_SIZE ((size_t) (60 * 1024) 60 Кбайт. Максимальне число пріоритетів завдань одно 5.

Після створення наших завдань планувальник віддасть керування, завданню з найбільшим пріоритетом - це завдання ініціалізації USB InitUSB з пріоритетом 3 (після виконання дана задача видаляється з планувальника і звільняє стек ОСРВ). Після цього він віддасть керування задачам LED1 - Де виконується ініціалізація GSM модуля протягом 13 секунд vTaskDelay (13000) і поки ця задача тимчасово блокована планувальник віддасть керування іншій задачі з пріоритетом 2 - завданню відправки SMS - OtpravSms але дана задача чекає дані в черзі, а оскільки даних в черзі нету то xStatus =xQueueReceive (xQueueSoob, amp; ReciveData, 0) виконання цього завдання планувальником припиняється (NULL);- А ось відновити тепер виконання цього завдання може тільки завдання порівняння значень АЦП вона ж відправляє в чергу номер телефону на який необхідно відправити повідомлення. Як тільки планувальник відрахує 13 сек з моменту блокування LED1 вона розблокується і управління знову передається їй, якщо ініціалізація пройшла успішно, в її тілі знижується її ж пріоритет до 1 і відбувається поперемінної миготіння світлодіодів - говорить про успішну ініціалізації. У нашому випадку кожній задачі планувальник приділяє кожного завдання 1мСек, через 1 мсек відбувається переривання системного таймера SysTick при цьому дані завдання зберігаються в стеку завдання. Це переривання запускає планувальник який оцінює чи є готові, неблокірованние до виконання завдання і в порядку пріоритету віддає управління тій, у якої пріоритет максимальний. В даному випадку якщо високопріоритетного задача не має тимчасового блокування або припинення, завдання з меншим пріоритетом ніколи не отримають управління.


3.3 Взаємодія завдань і переривань


Розглянемо як обробляються переривання без ОСРВ. Кожен тип переривання мікроконтролера має свій пріоритет. Його можна встановити в СФР де для завдання пріоритету виділено 4 біта - це відповідає рівням пріоритету від 0 до 15. Проте дані біти різними комбінаціями можуть бути розділені на підгрупи (наприклад 2 біти на пріоритет групи і 2 на пріоритет підгрупи).

У нашому проекті виконаємо настройку при якій всі 4 біта - відповідають рівням пріоритету, без поділу на підгрупи: _PriorityGroupC...


Назад | сторінка 5 з 11 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Програма обробки відомості про час виконання завдання на ЕОМ
  • Реферат на тему: Виконання Завдання з надання впевненості аудиторам
  • Реферат на тему: Аналіз Виконання планових Завдання з виробничої програми за рік
  • Реферат на тему: Організація виконання завдання командиром інженерно-саперного взводу за про ...
  • Реферат на тему: Схильність до ризику і стресостійкість як фактори успішного виконання бойов ...