|
Tài trợ cho PIC Vietnam |
RTOS và Thuật toán với PIC RTOS và Các thuật toán dùng cho PIC/dsPIC/PIC32 Mod: phamminhtuan |
|
Ðiều Chỉnh | Xếp Bài |
01-10-2011, 05:13 PM | #1 |
Nhập môn đệ tử
Tham gia ngày: Jul 2011
Bài gửi: 7
: |
RTOS của Microchip
Mình đang tìm hiểu RTOS nhưng là Free của CCS.
Theo những gì mình thu lượm được thì khi 2 hay nhiều task chạy thì các task sẽ được chạy đan xen với nhau. Thời gian mỗi task chạy trước khi chuyển sang task khác là rate = n.minor_cycle. Nhưng khi thực hiện mình thấy để đúng thì minor_cycle min phải có giá trị >= thời gian của hoàn thành 1 task ngắn nhất . Như vậy nếu gặp 1 task có thời gian khá dài thì giá trị minor_cycle phải khá lớn làm ảnh hưởng tới các task khác và tính đáp ứng của RTOS. Vậy các bác có cách nào giải quyết vấn đề này ko ? Cái đó do RTOS của CCS hay do cách mình viết Code nhỉ ? Ví dụ : ...... #use rtos(timer=1, minor_cycle=t) #task (rate = t, max=1ms,queue=5) void chuongtrinhmot() { ///...... } #task (rate = 2.t, max=1ms,queue=5) void chuongtrinhhai() { ///...... } ...... Nếu chương trình 1 hoặc 2 là 1 chương trình cần nhiều thời gian để hoàn thành như xuất kí tự lên LCD mất 50ms thì minor_cycle >=50ms. Do đó rate của các task rất lớn => RTOS không đáp ứng dc thời gian thực Nhờ các cao nhân chỉ giáo |
|
|