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

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 05-10-2012, 03:42 PM   #5
handsometran
Đệ tử 2 túi
 
Tham gia ngày: Feb 2009
Bài gửi: 35
:
Trích:
Nguyên văn bởi shoknshok View Post
Bạn có thể giải thích đoạn code dùng ngắt trong con này được ko? Mình cũng đang tìm hiểu nhưng không biết viết một đoạn chương trình ngắt như thế nào cả? Thanks!
Tôi viết một đoạn ví dụ cho bạn xem, đầu tiên là khởi tạo ngắt. nếu bạn dùng nhiều ngắt thì dùng nguyên portB 8 pin (xem lại datasheet), còn dùng 1 ngắt thì có RB0 vì đó là chân ngắt đặt biệt. Tôi dùng RB0 để ngắt xung nhận từ encoder, mỗi khi xung cạnh xuống là báo ngắt và biến xung tăng lên 1.
//===========INITIALIZE PWM MODUL===============================//
void init_ngat()
//XEM DATASHEET TRANG 128
{
PEIE = 1;//cho phep ngat ngoai vi
GIE = 1;//cho phep ngat toan cuc
INTEDG = 0;//ngat RB0 khi co xung xuong
INTF = 0;//xoa co ngat RB0
//INTE = 1;// chua cho phep ngat ngoai RB0 hoat dong
//ADIE = 1;// cho phep ngat ADC
//ADIF = 0;// xoa co bao ngat ADC
}
/=====CHUONG TRINH DEM XUNG ENCODER====================//
void interrupt ISR()
{
if(INTF && INTE)
{xung++;
INTF =0;}
}

Bạn tham khảo chương trình trong bài tiểu luận này sẽ hiểu thêm hơn về ngắt http://www.picvietnam.com/forum/showthread.php?t=30520
handsometran vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 


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à 09:25 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