2010-08-29 41 views
5

Xin chào, tôi tự hỏi liệu có ai có thể cho tôi ví dụ về cách chức năng TickGetDiv256(); hoạt động hay không. Nó đến từ Microchip trong Tick.cTickGetDiv256() hoạt động như thế nào?

Tôi đang cố gắng đếm cho 2 houre, nếu động cơ đầy sẽ bị dừng lại.

Tôi có thể sử dụng chức năng "threshold = tick + TICKS_PER_SECOND * 60;". Nhưng tôi không biết liệu có nên sử dụng nó trong khoảng thời gian này không: threshold = tick + (TICKS_PER_SECOND * 60 * 60)*2;

Kind Regards

+0

tốc độ gì đồng hồ chạy ở đâu? –

+0

Clokc đang chạy ở 48Mhz :) – Christian

+0

Chu kỳ đồng hồ 'một lần đánh dấu'? –

Trả lời

2

Đánh giá từ MPLAB C guide, kiểu dữ liệu số nguyên lớn nhất được hỗ trợ bởi trình biên dịch C là 32-bit. Từ những gì tôi có thể lượm lặt ở nơi khác, bộ đếm đánh dấu là sáu byte - TickGetDiv256 trả về 'số trung bình' của các byte này.

Vì toàn bộ sáu byte của bộ đếm đánh dấu không thể khớp với số nguyên 32 bit, bạn nên sử dụng TickGetDiv256 để trích xuất các byte giữa và do đó có số lượng các khoảng thời gian 'đánh dấu 256' đã trôi qua kể từ bộ đếm đã được bắt đầu. Tất nhiên, điều này không đúng vì nó bỏ qua byte cao nhất của bộ đếm. Bạn muốn sử dụng chức năng này nếu thấp hơn bốn byte của bộ đếm đánh dấu không cung cấp đủ của một phạm vi cho khoảng thời gian bạn quan tâm đến

0

Có lẽ tôi có thể làm như thế này:.

// if (Ts1/GTsy1) is under 40 and have'nt increased within 2h 
    if (AD0 < 40 && (TickGetDiv256() - (startingTick + (TICKS_PER_SECOND * 7200)/256)) >= 7200) 
    { 
     sip.PL = 0; 
     sip.PU = 0; 
     // Failure(code); 
    } 

    // if (Ts1/GTsy1) is under 40, start countdown 
    if (AD0 < 40) 
    { 
     if (!alflags.ColdTimer) 
      startingTick = TickGetDiv256(); //Start timer 
     alflags.ColdTimer = 1; 
    } 
    else 
     alflags.ColdTimer = 0; 
+0

TickGetDiv64K() sẽ cung cấp cho bạn bốn byte trên của bộ đếm - điều này có thể an toàn hơn một chút nếu bạn không đặt lại bộ đếm trong khi hoạt động - bạn sẽ có độ phân giải 2 giây với chức năng này @ 32,768 tps. –

Các vấn đề liên quan