![]() |
|
Tài trợ cho PIC Vietnam |
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 |
![]() |
#11 |
Đệ tử 9 túi
|
Nếu sử dụng vòng lặp như thế này với giá trị nạp vào của count1,count2,count3 là a,b,c:
------------------------------ LOOP DECFSZ COUNT1,1 GOTO LOOP DECFSZ COUNT2,1 GOTO LOOP DECFSZ COUNT3,1 GOTO LOOP RETURN ------------------------------ Khi count1 giảm đến 0,sau đó giảm count2 xuống 1 và quay về LOOP count1 giảm thêm 1 nên sẽ là 255.Do vậy giá trị a không có ý nghĩa. Tương tự giá trị b cũng vậy. THỜI GIAN CHO VÒNG LẶP LOOP NÀY: Khi con trỏ đang ở dòng DECFSZ COUNT2,1 thì count1 có giá trị 0 Khi con trỏ đang ở dòng DECFSZ COUNT3,1 thì count1,count2 đều có giá trị 0 1) DECFSZ COUNT1,1 mất 1 chu kỳ máy GOTO LOOP mất 2 chu kỳ máy Để count1 giảm từ 0 về 1 mất 255*3 chu kỳ máy,giảm từ 1 về 0 mất thêm 1 chu kỳ máy nữa.Bây giờ con trỏ đang ở dòng DECFSZ COUNT2,1 Vậy thời gian đã thực thi là : (255*3 + 1)*t (t là thời gian thực thi 1 chu kỳ máy) 2) Mỗi lần count2 giảm 1 thì lại quay lại giảm count1 Thời gian giảm count2 cũng tính tương tự Vậy khi con trỏ ở DECFSZ COUNT3,1 thì thời gian đã thực thi là: ((255*3 + 1)*t)*255 + (255*3 + 1)*t 3) Tương tự tính cho giảm count3 từ c về 0. Vậy thời gian cho vòng lặp LOOP sẽ là: {[(255*3 + 1)*t]*255 + (255*3 + 1)*t}*(c-1) + [(c-1)*3 + 1]*t = {{[(255*3 + 1)]*255 + (255*3 + 1)}*(c-1) + (c-1)*3 + 1}*t = [(766*255 + 766)*(c-1) + (c-1)*3 + 1]*t = [196096*(c-1) + (c-1)*3 + 1]*t = (196099*c - 196098)*t Với c = 14 ,t = 0,4us thời gian này là (196099*14 - 196098)*0.4us = 1.02s Chắc không khó khăn gì để tính thời gian lặp kiểu này với n biến count!
__________________
Ngày mai bắt đầu từ ngày hôm nay Bạn có thắc mắc, bạn cần sự hỗ trợ của các thành viên. Hãy đọc luồng này: http://www.picvietnam.com/forum//showthread.php?t=1263 thay đổi nội dung bởi: nhh, 17-02-2006 lúc 10:14 AM. |
![]() |
|
|
![]() |
||||
Ðề tài | Người gửi | Chuyên mục | Trả lời | Bài mới |
TUT về USART trong PIC16F877A | mafd_47a | MPASM | 16 | 19-02-2025 05:32 AM |
TUT ve I2C ( pic16f877a ) | mafd_47a | MPASM | 28 | 28-01-2025 10:45 PM |
Lập nhóm PIC16F877A | nhh | Cơ bản về vi điều khiển và PIC | 285 | 08-03-2017 11:08 PM |
Bộ so sánh và PWM cho PIC16F877A | anhquangngai | Cơ bản về vi điều khiển và PIC | 24 | 08-09-2012 09:00 AM |
CCS C for PIC16F877A | nhh | Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) | 405 | 24-04-2008 12:00 PM |