O`ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI
TOSHKENT AXBOROT TEXNOLOGIYALARI
UNIVERSITETI SAMARQAND FILIALI
"Kompyuter injiniring" fakulteti
"Kompyuter tizimlari" kafedrasi
"Real vaqt tizimlari" fanidan
Laborotoriya ishi №3
Mavzu: FreeRTOS da LCD 1602 erkanni boshqarish vazifasini yaratish.
Bajardi: 203-guruh talabasi
Eshimov B
Qabul qildi: ___________
SAMARQAND – 2022
LABORATORIYA ISHI №3.
Mavzu: FreeRTOS da LCD 1602 erkanni boshqarish vazifasini yaratish.
Ishning maqsadi. LCD 1602 erkanni boshqarish vazifasini yaratish. FreeRTOSConfig.hni sozlash. Sozlanmalarning parametrlarini o’rganib chiqish.
Oldingi qo'llanmada biz Arduino Uno-da FreeRTOS-ni taqdim etdik va miltillovchi LED uchun vazifa yaratdik. Endi, ushbu qo'llanmada biz RTOS API-larining ilg'or tushunchalari bilan ko'proq tanishamiz va turli vazifalar o'rtasidagi aloqa haqida bilib olamiz. Bu yerda biz, shuningdek, bir vazifadan ikkinchisiga maʼlumotlarni uzatish uchun Queue haqida bilib olamiz va Arduino Uno bilan 16x2 LCD va LDR interfeysini oʻrnatish orqali navbat API’larining ishlashini namoyish qilamiz.
Navbatlar haqida gapirishdan oldin, keling, tayinlangan ish tugagandan so'ng vazifalarni o'chirishda yordam beradigan yana bitta FreeRTOS API-ni ko'rib chiqaylik. Ba'zan ajratilgan xotirani bo'shatish uchun vazifani o'chirish kerak. Oldingi qo'llanmaning davomi sifatida biz vazifalardan birini o'chirish uchun xuddi shu kodda vTaskDelete() API funksiyasidan foydalanamiz. Vazifa o'zini yoki boshqa har qanday vazifani o'chirish uchun vTaskDelete() API funksiyasidan foydalanishi mumkin.
Ushbu APIdan foydalanish uchun FreeRTOSConfig.h faylini sozlashingiz kerak. Ushbu fayl FreeRTOS-ni dasturga muvofiq sozlash uchun ishlatiladi. U rejalashtirish algoritmlarini va boshqa ko'plab parametrlarni o'zgartirish uchun ishlatiladi. Faylni odatda kompyuteringizning Hujjatlar jildida mavjud bo'lgan Arduino katalogida topish mumkin. Mening holimda u quyida ko'rsatilgandek \ Documents \ Arduino \ libraries \ FreeRTOS \ src da mavjud.
Endi istalgan matn muharriri yordamida ushbu faylni oching va #define INCLUDE_vTaskDelete ni qidiring va uning qiymati “1” ekanligiga ishonch hosil qiling (1 yoqish va 0 oʻchirishni bildiradi). Bu sukut bo'yicha 1, lekin uni tekshiradi.
Parametrlarni o'rnatish uchun keyingi darslarimizda ushbu konfiguratsiya faylidan tez-tez foydalanamiz.
FreeRTOS da navbatdan ma'lumotlarni qabul qilish
Navbatdagi elementni qabul qilish (o'qish) uchun xQueueReceive() ishlatiladi. Qabul qilingan element navbatdan olib tashlanadi.
Ushbu API ham uchta argumentni oladi.
xQueueReceive( QueueHandle_t xQueue, void * const pvBuffer, TickType_t xTicksToWait );
Birinchi va uchinchi argumentlar API yuborish bilan bir xil. Faqat ikkinchi dalil boshqacha.
const pvBuffer: Qabul qilingan ma'lumotlar nusxalanadigan xotiraga ko'rsatgich.
Umid qilamanki, siz uchta APIni tushundingiz. Endi biz ushbu API-larni Arduino IDE-da qo'llaymiz va yuqorida tavsiflangan muammoni hal qilishga harakat qilamiz.
Elektr sxemasi
]
Do'stlaringiz bilan baham: |