PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Cơ bản về vi điều khiển và PIC (http://www.picvietnam.com/forum/forumdisplay.php?f=8)
-   -   Đếm nhiều hơn 8-bit với Timer0? (http://www.picvietnam.com/forum/showthread.php?t=2709)

0509592 16-08-2008 02:12 AM

Đếm nhiều hơn 8-bit với Timer0?
 
chào các bác!
em đã làm về timer/counter cho pic 16f877a. trong timer0 giá trị đếm của thanh ghi TMR0 là 8 bit. vậy khi dùng ở chế độ counter thì nó chỉ đếm được đến 255.
nhưng em muốn nó đếm đến giá trị cao hơn (giả sử là 300 chẳng hạn) thì có cách nào không ạ???
các bác có đoạn code CCS C về timer/counter thì cho em xin luôn để tham khảo ạ!
thanks!

minhdt10 16-08-2008 04:59 PM

Trích:

Nguyên văn bởi 0509592 (Post 18172)
chào các bác!
em đã làm về timer/counter cho pic 16f877a. trong timer0 giá trị đếm của thanh ghi TMR0 là 8 bit. vậy khi dùng ở chế độ counter thì nó chỉ đếm được đến 255.
nhưng em muốn nó đếm đến giá trị cao hơn (giả sử là 300 chẳng hạn) thì có cách nào không ạ???
các bác có đoạn code CCS C về timer/counter thì cho em xin luôn để tham khảo ạ!
thanks!

Bạn dùng chế độ prescal 1:2 (cứ 2 chu kỳ lệnh Timer0 mới đếm lên 1), 1:4,.., của Timer0

0903579509 18-08-2008 08:27 PM

Trích:

Nguyên văn bởi 0509592 (Post 18172)
chào các bác!
em đã làm về timer/counter cho pic 16f877a. trong timer0 giá trị đếm của thanh ghi TMR0 là 8 bit. vậy khi dùng ở chế độ counter thì nó chỉ đếm được đến 255.
nhưng em muốn nó đếm đến giá trị cao hơn (giả sử là 300 chẳng hạn) thì có cách nào không ạ???
các bác có đoạn code CCS C về timer/counter thì cho em xin luôn để tham khảo ạ!
thanks!

Bạn nên nói rõ ý đồ của mình để các anh em khác dễ trả lời đúng những gì bạn cần.
Chúc vui!

caonam 04-10-2008 08:48 PM

Để đếm nhiều hơn bạn phải kết hợp với phần mềm, ví dụ như bạn sẽ cho tràn khi đếm được 250 đơn vị chẳng hạn, mỗi lần tràn đó bạn sẽ vào ngắt và tăng 1 biến đếm khác lên, như vậy giá trị đếm được sẽ bằng 250 * BIẾN ĐẾM.
Để đếm được chính xác hơn bạn nên cho counter tràn sớm hơn, ví dụ như 5 lần thì tràn (tức giá trị nạp vào counter ban đầu sẽ là 250).

anh_gioi 05-10-2008 12:39 AM

có 1 bài toán như thế này:
em muốn dùng bộ count để đếm xung đầu vào (từ cảm biến SRF05) cho con 16F877A, nhưng em vẫn chưa biến cách làm với count thế nào?
ai có thể giúp em với?
thankssss!!!

0903579509 05-10-2008 01:47 PM

1 Attachment(s)
Trích:

Nguyên văn bởi anh_gioi (Post 19342)
có 1 bài toán như thế này:
em muốn dùng bộ count để đếm xung đầu vào (từ cảm biến SRF05) cho con 16F877A, nhưng em vẫn chưa biến cách làm với count thế nào?
ai có thể giúp em với?
thankssss!!!

Bạn thử xem ví dụ ở file dưới đây, không biết có giúp được cho bạn không?
Chúc vui!


Múi giờ GMT. Hiện tại là 10:04 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