PHẦN III CÁC BƯỚC THIẾT KẾ ỨNG DỤNG MINH HỌA

Một phần của tài liệu LẬP TRÌNH VI ĐIỀU KHIỂN ATMEGA 128 VÀ MÔ PHỎNG TRÊN PROTEUS CHO HỆ ĐIỀU HÀNH NHÚNG THỜI GIAN THỰC FREERTOS (Trang 62 - 69)

6. Trace Hook Macros

PHẦN III CÁC BƯỚC THIẾT KẾ ỨNG DỤNG MINH HỌA

Hình 3.1: Thiết kế mô phỏng ứng dụng -Mạch mô phỏng gồm: 1 VĐK Atmega 128 8 Transitor NPN 8 Điện trở thuần 8 LED đơn

Bộ tạo dao động gồm thạch anh và 2 tụ

-Nguyên lý hoạt động:

Khi được tác động bằng xung ra từ chân VĐK, cực B của Transitor sẽ mở nếu mức điện áp ra tương ứng là 1, và sẽ đóng nếu điện áp ra là 0. Khi transitor mở, dòng điện từ nguồn sẽ qua transitor, xuống qua trở, gây sụt áp trên LED làm led sáng. Khi transitor đóng, điện áp trên LED bằng 0, LED không sáng.

III.2 LỰA CHỌN CẤU HÌNH CHO HĐH QUA FreeRTConfig.h

Hình 3.2: Cấu hình HĐH bằng FreeRTOS.h

File FreeRTConfig.h là file cấu hình cho HĐH, sau đây là chức năng của các dòng lệnh trong FreeRTConfig.h

1,configUSE_PREEMPTION

Đặt là 1 nếu sử dụng hạt nhân ưu tiên, 0 nếu dùng hạt nhân hợp tác

2,configUSE_IDLE_HOOK

đặt là 1 nếu sử dụng IDLE_HOOK, 0 nếu không sử dụng

3,configUSE_TICK_HOOK

đặt là 1 nếu sử dụng một TICK_HOOK, 0 nếu không sử dụng

4,configCPU_CLOCK_HZ

đặt tần số đồng hồ cho lõi xử lý , giá trị này dùng để cấu hình thiết bị ngoại vi

5,configTICK_RATE_HZ

đặt tần số đánh dấu ngắt của RTOS

đánh dấu ngắt để đo thời gian, tất cả các ứng dụng của RTOS đều sử dụng tần số 1000Hz

6,configMAX_PRIORITIES

đặt số ưu tiên lớn nhất cho các task

7,configMINIMAL_STACK_SIZE

đặt kích cỡ của stack đã được sử dụng bởi idle task, không nên đặt thấp hơn khuyến cáo trong ứng dụng bạn tải về cho cổng bạn sử dụng

8,configTOTAL_HEAP_SIZE

tổng số lượng Ram có sẵn cho hạt nhân sử dụng

9,configMAX_TASK_NAME_LEN

chiều dài tối đa cho tên các task , khi task được tạo ra, bao gồm cả ký tự null

10,configUSE_TRACE_FACILITY

đặt 1 nếu muốn sử dụng trace thông dụng, đặt 0 nếu sử dụng trace theo dõi, nếu là trace theo dõi thì cần sung cấp bộ đệm

11,configUSE_16_BIT_TICKS

đánh dấu sự gián đoạn của hạt nhân kể từ khi bắt đầu

tham số này kiểm soát task ở độ ưu tiên cho idle, nó ngăn cản các idle task từ khi kết thúc thời gian xử lý của process trước đến process sau.

13,configUSE_MUTEXES

đặt 1 nếu sử dụng mutex ,hoặc 0 nếu không sử dụng

14,configUSE_RECURSIVE_MUTEXES

đặt 1 nếu sử dụng mutex đệ quy ,hoặc 0 nếu không sử dụng

15,configUSE_COUNTING_SEMAPHORES

đặt 1 nếu sử dụng đếm semaphore, nếu không thì đặt 0

16,configUSE_ALTERNATIVE_API

đặt 1 nếu dùng hàng đợi thay thế, 0 nếu không dùng

17,configCHECK_FOR_STACK_OVERFLOW

sử dụng để phát hiện tràn stack

18,configQUEUE_REGISTRY_SIZE

Việc xếp hàng đăng ký có hai mục đích khác nhau, cả hai điều này được liên kết với các hạt nhân nhận thức được gỡ lỗi:

Nó cho phép một textual tên để được liên kết với một hàng đợi cho các hàng dễ dàng xác định trong vòng một gỡ lỗi GUI.

Nó chứa các thông tin theo yêu cầu của một debugger để xác định vị trí xếp hàng từng đăng ký và semaphore.

Việc xếp hàng đăng ký không có mục đích, trừ khi bạn đang sử dụng một hạt nhân nhận thức được debugger.

19, configUSE_CO_ROUTINES

đặt 1 nếu muốn dùng co-routine, đặt 0 nếu không muốn dụng, nếu dùng thì cần phải có tệp coutine.c trong chương trình

20, configMAX_CO_ROUTINE_PRIORITIES đặt độ ưu tiên tối đa cho co-routine

21, configKERNEL_INTERRUPT_PRIORITY và configMAX_SYSCALL_INTERRUPT_PRIORITY

III.3 VIẾT PHẦN ỨNG DỤNG BẰNG AVR Studio

Hình 3.3: Viết ứng dụng bằng AVR Studio

Để viết phần mềm ứng dụng trên HĐH, bạn phải cài AVR Studio và WinAVR, sau đó bạn khởi động AVR Studio, và lập trình ứng dụng.

III.4 DỊCH PHẦN ỨNG DỤNG THÀNH FILE .hex

Để dịch phần ứng dụng, từ cửa sổ AVR Studio bạn chọn Build =>

Build

Hình 3.4: Cửa sổ AVR Studio

Một phần của tài liệu LẬP TRÌNH VI ĐIỀU KHIỂN ATMEGA 128 VÀ MÔ PHỎNG TRÊN PROTEUS CHO HỆ ĐIỀU HÀNH NHÚNG THỜI GIAN THỰC FREERTOS (Trang 62 - 69)