Ðề tài: RTOS của Microchip
View Single Post
Old 01-10-2011, 05:13 PM   #1
Duong_Act
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
Duong_Act vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn