1. Trang chủ
  2. » Giáo Dục - Đào Tạo

24 BÀI CODE HỆ ĐIỀU HÀNH NHÚNG THỜI GIAN THỰC FREERTOS

33 64 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

Bài 1: Quản lý ngắt sử dụng QueueViết chương trình tạo Task_Printer đọc chuỗi kí tự từ hàng đợi StringQueue và in chuỗi đó ramàn hình Serial Monitor. Các phần tử của hàng đợi được ghi bởi một chương trình con phụcvụ ngắt (ISR) sử dụng Timer1 của Arduino.Bài 2: xQueuePeek, xQueueOverwriteViết chương trình tạo 2 tác vụ có cùng mức ưu tiên, trong đó: Task1: Tạo queue có 3 phần tử kiểu chuỗi kí tự (tối đa 15 kí tự); nhập vào queue 2phần tử cho trước (message 1; message 2), sau đó ghi đè vào 1 phần tử khác (message3). In ra “Data waiting to be read: n” (n là số lượng phần tử có thể đọc ra); và“Available spaces: m” (m là số không gian trống trong queue) Task2: Đọc dữ liệu từ Queue với hàm xQueuePeek và in ra màn hìnhBài 3: Thay đổi mức ưu tiên của tác vụViết chương trình tạo 2 tác vụ Task1, Task2 có mức ưu tiên tương ứng là 2, 1 trước khi gọitrình lập lịch. Trong đó: Kích thước ngăn xếp 64 từ máy (words); Task1: In ra màn hình “Task1 is running, N” cứ mỗi 1s, N là biến đếm khởi tạo bằng0. Nếu N =4 thì thay đổi mức ưu tiên của Task2 thành 3 và in ra màn hình “Back fromTask2”. Task2: Thay đổi mức ưu tiên của mình thành 2, và cứ mỗi 1s in ra màn hình “Task2 isrunning”Bài 4: Lập trình vàora trên Arduino với UARTLập trình giao tiếp giữa hai Arduino sử dụng giao thức UART, với yêu cầu sau: 1 board gửi kí tự X và giá trị 235 sang cho board nhận cứ mỗi 0,5s Board nhận có kết nối LCD I2C và hiển thị đúng ký tự và giá trị nhận về lên dòng thứ2 của LCDBài 5: QueueViết chương trình thực hiện tạo hai tác vụ có tên “Task1”, “Task2” sao cho: Cả 2 tác vụ có: Stack 250 từ máy (word), mức ưu tiên (tskIDLE_PRIORITY + 1),Handle lần lượt là HTask1, HTask2 Task1 thực hiện tạo hàng đợi có tên “CT2Queue” có 6 phần tử kiểu chuỗi 20 ký tự;gửi 3 chuỗi ký tự (“CT02Hello”; “DT01Hi”; “ATWelcome” cho trước) vào hàngđợi. Task2 đọc từng phần tử từ hàng đợi và lần lượt in ra màn hình sau mỗi lần đọc các nộidung sau: giá trị của phần tử; số phần tử có thể đọc ra từ hàng đợi và không gian khảdụng còn lại tương ứng của hàng đợi.

HỆ ĐIỀU HÀNH NHÚNG THỜI GIAN THỰC Bài 1: Quản lý ngắt sử dụng Queue Viết chương trình tạo Task_Printer đọc chuỗi kí tự từ hàng đợi StringQueue in chuỗi hình Serial Monitor Các phần tử hàng đợi ghi chương trình phục vụ ngắt (ISR) sử dụng Timer1 Arduino #include #include "queue.h" QueueHandle_t xStringQueue; int timer1_counter ; void setup(){ Serial.begin(9600); xTaskCreate(vStringPrinter," String Printer", 100, NULL, 1,NULL); xStringQueue = xQueueCreate(5,sizeof(char *)); InterruptInit(); } void vStringPrinter(void *pvParameters) { char *pcString; while(1) { xQueueReceive(xStringQueue,&pcString,portMAX_DELAY); Serial.println(pcString); } } ISR(TIMER1_OVF_vect) { TCNT1 = timer1_counter; uint32_t receivedNumber; static const char *pcStrings[]= { "Hello\r\n", "Hi\r\n", "I\r\n", "am\r\n", "here\r\n", }; xQueueSendToBackFromISR(xStringQueue,&pcStrings[0],pdFALSE); } void loop(){} void InterruptInit() { noInterrupts(); TCCR1A =0; TCCR1B =0; timer1_counter = 34286; TCNT1 = timer1_counter; TCCR1B |=(1

Ngày đăng: 13/11/2021, 10:32

HÌNH ẢNH LIÊN QUAN

-- Task1: In ra màn hình “Task1 is running, N” cứ mỗi 1s ,N là biến đếm khởi tạo bằng 0 - 24 BÀI CODE HỆ ĐIỀU  HÀNH NHÚNG THỜI GIAN THỰC FREERTOS
ask1 In ra màn hình “Task1 is running, N” cứ mỗi 1s ,N là biến đếm khởi tạo bằng 0 (Trang 3)
-- Task2 đọc từng phần tử từ hàng đợi và lần lượt in ra màn hình sau mỗi lần đọc các nội dung sau: giá trị của phần tử; số phần tử có thể đọc ra từ hàng đợi và không gian khả dụng còn lại tương ứng của hàng đợi. - 24 BÀI CODE HỆ ĐIỀU  HÀNH NHÚNG THỜI GIAN THỰC FREERTOS
ask2 đọc từng phần tử từ hàng đợi và lần lượt in ra màn hình sau mỗi lần đọc các nội dung sau: giá trị của phần tử; số phần tử có thể đọc ra từ hàng đợi và không gian khả dụng còn lại tương ứng của hàng đợi (Trang 6)
-- MyTask1, MyTask2: đều in ra màn hình Serial Monitor dòng chữ “Task N is running, - 24 BÀI CODE HỆ ĐIỀU  HÀNH NHÚNG THỜI GIAN THỰC FREERTOS
y Task1, MyTask2: đều in ra màn hình Serial Monitor dòng chữ “Task N is running, (Trang 7)
-- MyTask3: In ra màn hình Serial Monitor dòng chữ “Tas k3 is running, Suppending all tasks”; thực hiện đình chỉ cả 3 tác vụ; tiếp tục in ra dòng chữ “Back in Task3, Deleting Itself” và xóa chính nó (MyTask3) - 24 BÀI CODE HỆ ĐIỀU  HÀNH NHÚNG THỜI GIAN THỰC FREERTOS
y Task3: In ra màn hình Serial Monitor dòng chữ “Tas k3 is running, Suppending all tasks”; thực hiện đình chỉ cả 3 tác vụ; tiếp tục in ra dòng chữ “Back in Task3, Deleting Itself” và xóa chính nó (MyTask3) (Trang 8)
-- Task2 đọc từng phần tử từ hàng đợi và lần lượt in ra màn hình sau mỗi lần đọc các nội dung sau: giá trị của phần tử; số phần tử có thể đọc ra từ hàng đợi và không gian khả dụng còn lại tương ứng của hàng đợi. - 24 BÀI CODE HỆ ĐIỀU  HÀNH NHÚNG THỜI GIAN THỰC FREERTOS
ask2 đọc từng phần tử từ hàng đợi và lần lượt in ra màn hình sau mỗi lần đọc các nội dung sau: giá trị của phần tử; số phần tử có thể đọc ra từ hàng đợi và không gian khả dụng còn lại tương ứng của hàng đợi (Trang 11)
-- Tác vụ Sender đọc giá trị ADC gửi vào Queue và in giá trị đó ra màn hình Serial monitor - 24 BÀI CODE HỆ ĐIỀU  HÀNH NHÚNG THỜI GIAN THỰC FREERTOS
c vụ Sender đọc giá trị ADC gửi vào Queue và in giá trị đó ra màn hình Serial monitor (Trang 12)
-- Task gửi: Ghi 1 giá trị vào mailbox mỗi 5s và in ra màn hình Serial Monitor dòng chữ “Data written to mailbox” - 24 BÀI CODE HỆ ĐIỀU  HÀNH NHÚNG THỜI GIAN THỰC FREERTOS
ask gửi: Ghi 1 giá trị vào mailbox mỗi 5s và in ra màn hình Serial Monitor dòng chữ “Data written to mailbox” (Trang 16)
-- In ra màn hình Serial Monitor trạng thái hiện tại của đèn #include <Arduino_FreeRTOS.h> - 24 BÀI CODE HỆ ĐIỀU  HÀNH NHÚNG THỜI GIAN THỰC FREERTOS
n ra màn hình Serial Monitor trạng thái hiện tại của đèn #include <Arduino_FreeRTOS.h> (Trang 18)
-- In ra màn hình Serial Monitor trạng thái hiện tại của đèn #include <Arduino_FreeRTOS.h> - 24 BÀI CODE HỆ ĐIỀU  HÀNH NHÚNG THỜI GIAN THỰC FREERTOS
n ra màn hình Serial Monitor trạng thái hiện tại của đèn #include <Arduino_FreeRTOS.h> (Trang 19)
-- Hai hàm đều in ra màn hình thông báo trạng thái thực thi của mình kèm số thứ tự của lần thực thi đó - 24 BÀI CODE HỆ ĐIỀU  HÀNH NHÚNG THỜI GIAN THỰC FREERTOS
ai hàm đều in ra màn hình thông báo trạng thái thực thi của mình kèm số thứ tự của lần thực thi đó (Trang 21)
Viết chương trình trên Arduino đọc giá trị cảm biến ADC và in ra màn hình LCD sao cho: -- Sử dụng queue để lưu giá trị đọc được từ cảm biến, queue có 7 phần tử kiểu nguyên -- Có 2 tác vụ riêng biệt thực hiện việc đọc và ghi vào queue - 24 BÀI CODE HỆ ĐIỀU  HÀNH NHÚNG THỜI GIAN THỰC FREERTOS
i ết chương trình trên Arduino đọc giá trị cảm biến ADC và in ra màn hình LCD sao cho: -- Sử dụng queue để lưu giá trị đọc được từ cảm biến, queue có 7 phần tử kiểu nguyên -- Có 2 tác vụ riêng biệt thực hiện việc đọc và ghi vào queue (Trang 29)
-- MyTask1, MyTask2: đều in ra màn hình Serial Monitor dòng chữ “Task N is running, Deleting Itself”, với N tương ứng là 1 và 2 - 24 BÀI CODE HỆ ĐIỀU  HÀNH NHÚNG THỜI GIAN THỰC FREERTOS
y Task1, MyTask2: đều in ra màn hình Serial Monitor dòng chữ “Task N is running, Deleting Itself”, với N tương ứng là 1 và 2 (Trang 31)

TỪ KHÓA LIÊN QUAN

w