PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

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

Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 19-09-2008, 11:20 AM   #1
thienthan_den
Nhập môn đệ tử
 
Tham gia ngày: Sep 2006
Bài gửi: 3
:
Question Tự định nghĩa ngắt trong PIC

Có một vấn đề nhỏ là: ta không muốn dùng các ngắt chuẩn mà Pic hỗ trợ (có thể vì dùng hết rùi...) mà ta muốn định nghĩa một ngắt khác. VD ngắt trên chân RD0 của Pic chẳng hạn. Vậy thì phải làm cách nào??? Nếu có ai biết thì chỉ cho em với.
PS: Em có giải pháp này không biết chấp nhận được không, đó là dùng multithread (đa tiến trình) để lập trình cho Pic. Không biết thế nào nữa. Nhưng đến bây giờ vẫn chưa có tài liệu gì về vấn đề này. Xin mọi người giúp đỡ
Thanks very much.
thienthan_den vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-09-2008, 03:32 PM   #2
minhsondaklak
Đệ tử 5 túi
 
Tham gia ngày: Jan 2008
Bài gửi: 96
:
1. Nhận tín hiệu vào RD0 như là ngắt:
Code:
Void MAIN()
{
...
  while (1)
        {
        ...
        if (RD0 == 1) {Muốn làm gi thi làm}
        }
}
Mình chỉ biết có vậy, dùng biện pháp quét RD0 trong vòng lặp While.
Kết quả không đáp ứng 100% như ngắt.
Nếu thời gian xảy ra sự kiện RD0=1 ngắn hơn thời gian chạy hết 1 vòng lặp While thì "lần ngắt" đó có thể bị bỏ qua.
2. multithread: Bạn hỏi Google, tôi đã gặp bên "dientuvietnam" thì phải.

thay đổi nội dung bởi: minhsondaklak, 19-09-2008 lúc 03:43 PM.
minhsondaklak vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-09-2008, 05:20 PM   #3
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi thienthan_den View Post
Có một vấn đề nhỏ là: ta không muốn dùng các ngắt chuẩn mà Pic hỗ trợ (có thể vì dùng hết rùi...) mà ta muốn định nghĩa một ngắt khác. VD ngắt trên chân RD0 của Pic chẳng hạn. Vậy thì phải làm cách nào??? Nếu có ai biết thì chỉ cho em với.
PS: Em có giải pháp này không biết chấp nhận được không, đó là dùng multithread (đa tiến trình) để lập trình cho Pic. Không biết thế nào nữa. Nhưng đến bây giờ vẫn chưa có tài liệu gì về vấn đề này. Xin mọi người giúp đỡ
Thanks very much.
PIC chỉ là một vi điều khiển, không hỗ trợ multithread một cách tự nhiên. Hệ thống nhúng với PIC làm bộ não là một máy tính chuyên dụng, chứ không phải máy tính đa dụng. Do đó, nhiều khái niệm của máy tính đa dụng không áp dụng cho hệ thống nhúng dùng vi điều khiển.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-09-2008, 10:37 AM   #4
thienthan_den
Nhập môn đệ tử
 
Tham gia ngày: Sep 2006
Bài gửi: 3
:
Cảm ơn anh Nam, em hiểu rồi.
Vậy là cách dùng multithread không được rồi. Không biết còn cách nào khác không?
Làm như bạn minhsondaklak thì đúng là có rắc rối như bạn nói, nhất là với những chương trình có hàm main() dài!!!
Có bạn nào biết cách làm không, chỉ mình với.
thienthan_den vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-09-2008, 10:45 AM   #5
minhsondaklak
Đệ tử 5 túi
 
Tham gia ngày: Jan 2008
Bài gửi: 96
:
Không sợ Main() dài, chỉ sợ While() dài thôi !
minhsondaklak vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lờ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à 06:53 AM.


Đượ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