PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Các ngôn ngữ lập trình khác (CCS C, HT 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

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 31-03-2009, 12:03 AM   #1
thaithien
Đệ tử 7 túi
 
Tham gia ngày: Aug 2007
Bài gửi: 213
:
TÍnh toán thời gian trong CCS C

Mình đang chuyển sang lập trình PIC bằng PIC C nhưng cái tính toán thời gian lệnh ,chu kỳ lệnh chưa biết tính toán thế nào cho đúng.Thứ nhất là vể chu kỳ lệnh của các lệnh trong PIC C:delay_ms();output_D()...Cái này tham khảo ở đâu vậy vì trong datasheet của PIC chỉ nói đến chu kỳ lệnh của mã asembly thôi.Lấy ví dụ chương trình này :
Code:
/*   CONTINUE.C
*/

#include "16F877A.H"
#use delay(clock=4000000)

main()
{
   int outbyte;

    restart: outbyte=0;

    while(1)
    {
        output_D(outbyte);
        delay_ms(2);
        outbyte++;
                 
        if (!input(PIN_D0)) continue;
        if (!input(PIN_D1)) break;
        delay_ms(2);
        if (outbyte==100) goto restart;
    }
}
Ở trên ta khai báo clock=4000000 tức là 1 chu kỳ lệnh là =4*t0=4*(1/4000000)=1us
Các câu hỏi chưa có câu trả lời là:
1> Lệnh delay(clock=4000000) ảnh hưởng như thế nào tới lệnh delay_ms(2).Bởi vì delay_ms(2) tức là tạm dừng 2s,vậy clock kia ảnh hưởng thế nào?????
2> Khi chạy debug thi khi den lệnh delay_ms(2) thì nó sẽ trở về dòng #use delay(clock=4000000),và dừng ở đó 8 lần .Phải chăng 2 trong dòng lệnh delay_ms(2) kia là...?
thaithien 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à 05:33 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