- Thanh ghi điều khiển bộ QEI: QEICON:
Hình 1.95 Bảng tần số hoạt động
1.3.2.3 Các Hàm Dela y:
+ Để sử dụng các hàm delay , cần có khai báo tiền xử lý ở đầu file , VD : sử dụng OSC 20 Mhz , bạn cần khai báo : #use delay ( clock = 20000000 ) + Hàm delay không sử dụng bất kỳ timer nào . Chúng thực ra là 1 nhóm lệnh ASM để khi thực thi từ đầu tới cuối thì xong khoảng thời gian mà bạn quy định . Tuỳ thời gian delay yêu cầu dài ngắn mà CCS sinh mã phù hợp . có khi là vài lệnh NOP cho thời gian rất nhỏ . Hay 1 vòng lặp NOP . Hoặc gọi tới 1 hàm phức tạp trong trường hợp delay dài . Các lệnh nói chung là vớ vẩn sao cho đủ thời gian quy định là được . Nếu trong trong thời gian delay lại xảy ra ngắt thì thời gian thực thi ngắt không tính vào thời gian delay , xong ngắt nó quay về chạy tiếp các dòng mã cho tới khi xong hàm delay . Do đó thời gian delay sẽ không đúng .
Delay_us ( time )
+ Time : là biến số thì = 0 – 255 , time là 1 hằng số thì = 0 -65535 . + Hàm không trả về trị .
+ Hàm này cho phép delay khoảng thời gian dài hơn theo đơn vị us .
+ Quan sát trong C / asm list bạn sẽ thấy với time dài ngắn khác nhau , CSS sinh mã khác nhau .
Delay_ms (time )
+ Time = 0-255 nếu là biến số hay = 0-65535 nếu là hằng số . + Hàm không trả về trị .
+ Hàm này cho phép delay dài hơn nữa .
Delay_cycles (count )
+ Count : hằng số từ 0 – 255 , là số chu kỳ lệnh .1 chu kỳ lệnh bằng 4 chu kỳ máy. Hàm không trả về trị. Hàm dùng delay 1 số chu kỳ lệnh cho trướ delay delay_us ( time ).
Hình 1.96 Các cấu trúc lệnh
Lưu ý : các mục trong [ ] là có thể có hoặc không .
+ While (expr) stmt : xét điều kiện trước rồi thực thi biểu thức sau . + Do stmt while (expr) : thực thi biểu thức rồi mới xét điều kiện sau .
+ Return : dùng cho hàm có trả về trị , hoặc không trả về trị cũng được , khi đó chỉ cần dùng: return ; ( nghĩa là thoát khỏi hàm tại đó ) .
+ Break : ngắt ngang ( thoát khỏi ) vòng lặp while. _Continue : quay trở về đầu vòng lặp while .