tailieunhanh - Đề thi học kỳ 1 môn Lập trình nhúng

Một hệ thống điều khiển nhiệt độ hoạt động như sau: • Bật lò đốt khi nhiệt độ đo được nhỏ hơn 100. Thời gian giữa 2 lần đọc là 100 ms. Trong khi bật lò, chớp nháy một LED với chu kỳ 1s để báo cho người dùng biết là lò đang bật. Khi tắt lò thì LED thôi không chớp nháy. | ĐỀ THI HỌC KỲ 1 MÔN LẬP TRÌNH NHÚNG Thời gian 90 phút SV được sử dụng tài liệu không sử dụng laptop máy vi tính Câu 1 4đ Một hệ thống điều khiển nhiệt độ hoạt động như sau Bật lò đốt khi nhiệt độ đo được nhỏ hơn 100. Thời gian giữa 2 lần đọc là 100 ms. Trong khi bật lò chớp nháy một LED với chu kỳ 1s để báo cho người dùng biết là lò đang bật. Khi tắt lò thì LED thôi không chớp nháy. Các hàm cho sẵn như sau int void void void void void readTemp void turnHeaterOn void turnHeaterOff void setLed clearLed initSysTick unsigned trả về giá trị nhiệt độ bật lò tắt lò bật LED tắt LED int number_ms khởi động ngắt systemTick với chu kỳ number_ms milisecond void Systick_ISR void chương trình phục vụ ngắt systemTick. Sinh viên sẽ tự thực hiện hàm này ở câu c. a Thiết kế máy trạng thái cho hệ thống trên Hướng dẫn Chia làm 2 máy trạng thái đồng bộ dùng biến chung shared variable b Time interval của hệ thống là bao nhiêu c Viết chương trình thực thi hệ thống trên theo máy trạng thái đã thiết kế. 2đ Câu 2 2đ Cho chương trình assembly sau cho ARM Cortex M3 sub_func MOV R3 R0 PUSH R4 LR MOVS R0 0 MOV R2 R0 B loc_448 loc_440 LSLS R4 R2 2 LDR R4 R3 R4 ADDS R0 R4 R0 ADDS R2 R2 1 loc_448 CMP R2 R1 BLT loc_440 LDR R1 0x55555555 EORS R0 R1 POP R4 PC a Đoạn chương trình con trên làm công việc gì Giải thích. 1đ b Viết chương trình con tương ứng dùng ngôn ngữ C. 1đ Câu 3 4đ Cho đoạn chương trình dùng FreeRTOS như sau trong đó hàm vPrintString xuất 1 chuỗi ra serial port 0. Thời gian hàm này thực thi là 20 ms. Hàm toggleLED dùng để đảo trạng thái 1 LED. Hàm này thực thi trong thời gian rất ngắn. void vTask1 void void vTask2 void pvParameters pvParameters void vTask3 void pvParameters int main void xTaskCreate vTaskl Task 1 200 NULL 1 NULL xTaskCreate vTask2 Task 2 200 NULL 2 NULL xTaskCreate vTask3 Task 3 200 NULL 3 NULL vTaskStartScheduler for void vTask1 void pvParameters const char pcTaskName Task 1 is running n for vPrintString pcTaskName vTaskDelay 10 portTICK_RATE_MS void vTask2

TỪ KHÓA LIÊN QUAN