Hỏi về việc khai báo #use fast_io(port)???
Các bác cho em hỏi về cách sử dụng các khai báo #use fast_io(port). Khi nào mình dùng? Không dùng thì chương trình có bị ảnh hưởng gì không? Cảm ơn các bác nhiều lém lém...
|
đây là bài nhấp nháy 8 led port B theo 2 cách để bạn tham khảo & so sánh
Code:
///////////////////////// dùng #use fast_io//////////////////////////// Code:
////////////////////// không dùng #use fast_io//////////////////////////// |
khi minh khai báo #include <def_877a.h> thì nó đã định nghĩa #byte portb=0x06 rồi phải không các bác, vậy có cần khai báo thêm không. Cụ thể đoạn khai báo của em dưới đây, các bác xem dùm nha.
#include <16f877A.h> #include <def_877a.h> #fuses NOWDT,HS,PUT,NOPROTECT,NOLVP,NODEBUG #use delay(clock=16000000) #use fast_io(b) void khoitao() { set_tris_d(0x00); set_tris_c(0x00); set_tris_e(0xff); set_tris_b(0xff); } ...... if((rb1==1)&&(rb2==1)&&(rb3==1)&&(rb4==1)) ..... cảm ơn bác nha |
Trích:
|
các bác cho em hoi thêm khi mình khai báo #use fast_io(b) thì mình sử dụng các lệnh ví dụ như:
output_low(pin_b0); output_low(pin_b1); output_low(pin_b2); output_low(pin_b3); output_low(pin_b4); output_low(pin_b5); output_low(pin_b6); output_low(pin_b7); Có vấn đề gì không? Thankssssssssss |
Trích:
|
Em không khai báo #use fast_io(b) thì chương trình không có lỗi, có phải là chắc chắn nó cahj sai không các bác?
|
Trích:
|
Vậy để đảm bảo chương trình không sai thì ta nên khai báo #ues fast_io() cho tất cả các port phải không bác.
Em mới chuyển qua C nên còn gà lắm. Cảm ơn bác đã tận tình chỉ dẫn. |
S ử dụng #use fast_io() sẽ báo cho CCS biết việc thực hiện lệnh SET_TRIS_X() một lần trước khi sử dụng tới IO, điều này sẽ làm cho việc Read/Write các IO nhanh hơn so với việc không khai báo(mặc định CCS sẽ thực hiện gán lại TRIS của IO trước khi Read/Write).
Vậy nên nếu ứng dụng của bạn chắc chắn dùng port 1 IO vào 1 chức năng nào đó làm Input hoặc Output thôi thì khai báo #use_fast_io() sẽ rất hiệu quả. |
Mình đã hiểu rồi cảm ơn các bạn nhiều nha. Khi nào có gì thắc mắc lại nhờ các bạn tiếp nhé! Hihi
|
Mình không khai báo được dòng #include <def_877a.h> .CCS cứ báo lỗi là không tìm thấy file trên trong mục device.Bạn nào có kinh nghiệm rồi xin chỉ giáo giùm.Cám ơn nhiều lắm
|
Trích:
|
Lâu không dùng CCS nên ko nhớ rõ lắm. Hình như file Def_877a.h là do mình định nghĩa hay qui ước một số thứ ở trong đó. Thế thì bạn để file này ở chỗ nào...
|
Trích:
|
Múi giờ GMT. Hiện tại là 08:44 PM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam