Danh mục

PHẦN 3: LẬP TRÌNH VỚI CCS ( tiếp theo ) - ĐẶNG LÊ KHOA - TRƯỜNG ĐH KHTN - KHOA ĐIỆN TỬ VIỄN THÔNG

Số trang: 36      Loại file: pdf      Dung lượng: 277.80 KB      Lượt xem: 11      Lượt tải: 0    
10.10.2023

Phí tải xuống: 6,000 VND Tải xuống file đầy đủ (36 trang) 0
Xem trước 4 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Chương 4: ngắt và ứng dụngNguyên tắc hoạt động của ngắtCác hàm dùng cho ngắtcác loại ngắtNguyên tắc hoạt động của ngắtứng dụng trong lập trình ưu tiên
Nội dung trích xuất từ tài liệu:
PHẦN 3: LẬP TRÌNH VỚI CCS ( tiếp theo ) - ĐẶNG LÊ KHOA - TRƯỜNG ĐH KHTN - KHOA ĐIỆN TỬ VIỄN THÔNGTRƯ NG ð I H C KHOA H C T NHIÊNTR KHOA ðI N T - VI N THÔNG KHOAPH N 3: L P TRÌNH V I CCS (tt) ð ng Lê Khoa 1CHƯƠNG 4: NG T VÀ NG D NG• Nguyên t c ho t ñ ng c a ng t• Các hàm dùng cho ng t• Các lo i ng t• Ví d 2Nguyên t c ho t ñ ng c a ng t• ng d ng trong l p trình ưu tiên• Khi có 1 ng t x y ra, VðK s hoàn t t l nh ñang th c hi n và ch y chương trình ph c v ng t• C p ng t: ng t 1 c p và ng t 2 c p 3 Ng t 1 c p• Trên PIC 14 , 12 ,10 ,t t c các ng t ch có 1 c p ưu tiên .• Khi ng t nào ñang ñư c ph c v thì không th b ng t b i 1 ng t khác x y ra .• Khi ng t x y ra chương trình nh y ñ n ñ a ch ng t , thư ng là 004h , sao lưu thanh ghi W, STATUS , PCLATCH , FSR… thì nh y ñ n hàm ph c v ng t ñó .• Th c hi n xong thì ph c h i t t c thanh ghi trên thoát ng t . 4 Ng t 1 c p…• Bit cho phép ng t toàn c c ( GIE ) b khóa t ñ ng khi có ng t.• Dùng #priority ñ xác ñ nh ưu tiên ng t. Ng t ưu tiên nh t s luôn ñư c h i vòng trư c .Sau khi xác ñ nh c ng t c n ph c v , nó s th c thi hàm ng t tương ng .Xong thì xoá c ng t ñó và thoát ng t . Ph c v ng t nào xong thì ch xoá c ng t ñó. 5 Ng t 2 c p• Ch có trên PIC 18 ( và dsPIC ) . Có 2 khái ni m: ng t ưu tiên th p (low priority) và ng t ưu tiên cao ( high priority ).• 2 vector th c thi ng t tương ng thư ng là 0008h (high) và 0018h ( low ).• M t ng t th p ñang ñư c ph c v s b ngưng và ph c v ng t cao 0008h n u ng t cao x y ra. Ngư c l i, ng t cao ñang x y ra thì không bao gi b ng t b i ng t th p. 6 Ng t 2 c p…• N u vi t hàm ng t bình thư ng, không ñòi h i ưu tiên gì thì CCS sinh mã ñ t t c hàm ng t ñ u là ng t ưu tiên cao. Quy trình th c hi n ng t s như ng t 1 c p trên.• ð s d ng ng t 2 c p, khai báo #device ph i có high_ints=true . Và hàm ng t nào mu n ưu tiên cao thì thêm FAST theo sau ch th ti n x lý hàm ñó.• Ch có duy nh t 1 ng t ñư c ưu tiên cao. 7 Khai báo ng t• M i dòng VDK có s lư ng ng t khác nhau : PIC 14 có 14 ng t , PIC 18 có 35 ng t• #DEVICE HIGH_INTS= Khai báo ng t có m c ưu tiên cao.• #INT_XXX fast Đây là ch th báo cho trình biên d ch m t ng t có m c ưu tiên cao.• Cách khai báo: #INT_XXX 8 Khai báo ng t…• Sau ñây là danh sách 1 s ng t v i ch c năng tương ng :• #INT_GLOBAL : ng t chung• #INT_AD : chuy n ñ i A /D ñã hoàn t t• #INT_EXT : ng t ngoài• #INT_EXT1 : ng t ngoài 1• #INT_EXT2 : ng t ngoài 2• #INT_RB : b t kỳ thay ñ i nào trên chân B4 ñ n B7• #INT_RC : b t kỳ thay ñ i nào trên chân C4 ñ n C7• #INT_RDA : data nh n t RS 232 s n sàng• #INT_RTCC : tràn Timer 0• #INT_TBE : b ñ m chuy n RS 232 tr ng• #INT_TIMER0 : m t tên khác c a #INT_RTCC• #INT_TIMER1 : tràn Timer 1• #INT_TIMER2 : tràn Timer 2• #INT_TIMER3 : tràn Timer 3• #INT_TIMER5 : tràn Timer 5• #INT_PWMTB : ng t cu PWM time base 9 Relevant Functions:• disable_interrupts()Disables the specified interrupt.• enable_interrupts() Enables the specified interrupt.• ext_int_edge() Enables the edge on which the edge interrupt should trigger. This can be either rising or falling edge.• clear_interrupt() This function will clear the specified interrupt flag. This can be used if a global isr is used, or to prevent an interrupt from being serviced. 10• ð cho phép ng t ñó ho t ñ ng ph i dùng l nh enable_interrupts ( int_xxxx) và enable_interrupts ( global ) .• Khoá FAST theo sau #int_xxx ñ cho ng t ñó là ưu tiên cao , ch ñư c 1 ng t thôi , ch có PIC 18 và dsPIC . 11 enable_interrupts ( level )• level là tên các ng t ñã cho trên hay là GLOBAL ñ cho phép ng t c p toàn c c.• M i ng t c a VDK ñ u có 1 bit c ng t, 1 bit cho phép ng t. Khi có ng t thì bit c ng t b set =1, nhưng ng t có h at ñ ng ñư c hay không tuỳ thu c bit cho phép ng t . enable_interrupts (int_xxx ) s b t bit cho phép ng t . Nhưng t t c các ng t ñ u không th th c thi n u bit cho phép ng t toàn c c = 0VD : ñ cho phép ng t timer0 và timer1 ho t ñ ng: enable_interrupts (int_timer0); enable_interrupts (int_timer1 ) ; enable_interrupts ( global ); // ch c n dùng 1 l n tr //phi mu n có thay ñ i ñ c bi t 12 ...

Tài liệu được xem nhiều: