PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > RTOS và Thuật toán với PIC

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Tìm Kiếm Bài Trong Ngày Ðánh Dấu Ðã Ðọc Vi điều khiển

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

Trả lời
 
Ðiều Chỉnh Xếp Bài
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
Old 01-10-2011, 06:56 PM   #2
bien_van_khat
...Damned...
 
bien_van_khat's Avatar
 
Tham gia ngày: Apr 2006
Nơi Cư Ngụ: Hồ Chí Minh
Bài gửi: 522
:
Mình ko rõ cái RTOS của CCS có phải là preemptive RTOS hay ko.

Nếu có thì task có priority cao nhất sẽ luôn được thực khi nó cần. Nói đơn giản là OS sẽ dừng task đang chạy nếu có 1 hay nhiều task có priority cao hơn cần thực thi, sau đó chuyển quyền sử dụng CPU cho task có priority cao nhất cần thực thi.

Nếu không thì có thể coi các task đều có priority như nhau, khi đó điều bạn muốn chỉ có thể thực hiện bằng cách chia nhỏ task ra thành nhiều bước. VD sau mỗi lần đẩy 1 ký tự ra LCD thay vì chờ LCD sẵn sàng nhận ký tự tiếp, bạn suspense task đó để task khác được chạy.
__________________
- Xin đọc trước khi post bài

Xin đặt code trong thẻ [ code ] [ /code ]
bien_van_khat vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 02-10-2011, 06:28 PM   #3
Duong_Act
Nhập môn đệ tử
 
Tham gia ngày: Jul 2011
Bài gửi: 7
:
Thôi thì cũng đành "băm" cái task đó nhỏ ra vậy Tuy là code có dài và lâu hơn nhưng chắc hết cách
Duong_Act vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-10-2011, 09:56 PM   #4
hoangtuthanh
Nhập môn đệ tử
 
Tham gia ngày: Oct 2011
Bài gửi: 1
:
chào các bạn mình đang làm dk tốc độ động cơ và có hiển thị LCD đo số vòng của nó nhưng mình muốn nó xử lý liên tục thì làm như thế nào. mình mới tìm hiểu thôi. Ai bik thì giúp dùm nhe!! thanks you!!
hoangtuthanh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-01-2012, 12:12 AM   #5
Duong_Act
Nhập môn đệ tử
 
Tham gia ngày: Jul 2011
Bài gửi: 7
:
Xin chào các bác
Năm mới chúc các bác dồi dào sức khỏe,thành công và hạnh phúc.
Chúc 4rum ngày càng phát triển mạnh hơn nữa.
__
Tình hình là em lại có 1 vụ phải nhờ đến các bác
Số là đầu xuân mang CCS ra khai trương đầu năm, cũng ko phải công việc gì,chỉ là viết cho nó đỡ quên. Em chọn PIC24... và dùng ngay cái RTOS có sẵn của CCS ốp cho PIC24.
Hình như là RTOS ấy chỉ dành cho PIC16 và PIC18( em đoán thế thôi). Compile không lỗi nhưng RTOS không chạy. Nó không thực hiện một task nào cả. Nó chỉ chạy các lệnh trước
rtos_run();
Nhân tiện hỏi các bác là nguyên nhân do đâu Nếu là do RTOS ấy không dùng đc cho PIC24 (trở lên) thì các bác thường sử dụng RTOS nào.
Đầu xuân làm ko dc nó hơi bị cay mũi, xin nhờ các bác giúp em
Duong_Act vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 15-04-2014, 10:06 AM   #6
toan_320.vn
Đệ tử 1 túi
 
Tham gia ngày: Apr 2011
Bài gửi: 11
:
Anh Duong_ACt đã tìm hiểu từ lâu . Vậy anh có đề tài nào về RTOS cho pic 18f hay tài liệu nào nói về cái này ko ạ, em đang tìm hiểu để làm đề tài tốt nghiệp ứng dung rtos này. Xin cảm ơn anh !
toan_320.vn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 06-01-2015, 02:01 PM   #7
trungsonkmt
Nhập môn đệ tử
 
Tham gia ngày: Jan 2013
Bài gửi: 7
:
Tuy chủ đề đã cũ, nhưng hy vọng có ích cho người mới :-)
http://youtu.be/S7Mv9smGfcQ
trungsonkmt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời

Ðiều Chỉnh
Xếp Bài

Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 08:33 PM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam