Ðăng Nhập

View Full Version : timer0 ở chế độ counter của pic18F4331???


jean
16-04-2008, 06:24 PM
Nếu dùng timer0 để đếm xung thì ta có thể chọn đếm ở cạnh xung lên hoặc cạnh xung xuống. Mình có 1 điều thắc mắc là ta có thể chọn cả hai cạnh không, vừa đếm ở cạnh lên, vừa đếm ở cạnh xuống. Trong datasheet của PIC18F4331 thì muốn chọn đếm ở cạnh lên hoặc cạnh xuống chỉ cần set hoặc clear bit TOSE. Tuy nhiên ta chỉ có 1 bit để chon chế độ đếm ở cạnh nào thôi. Do đó, suy ra ta không thể chọn cùng lúc đếm ở cả cạnh lên và xuống.
Trong thực tế khi mình làm với mạch thực thì 2 cách thiết lập sau đều cho ra kết quả số xung đếm được là như nau:
set_RTCC(RTCC_EXT_L_TO_H|RTCC_EXT_H_TO_L, RTCC_DIV_BY_1|RTCC_8_BIT)

set_RTCC(RTCC_EXT_L_TO_H, RTCC_DIV_BY_1|RTCC_8_BIT)

Không biết mình có sai lầm chỗ nào không? rất mong ý kiến góp ý từ các bạn :D

namqn
16-04-2008, 07:22 PM
RTCC_EXT_H_TO_L = 1
RTCC_EXT_L_TO_H = 0

RTCC_EXT_L_TO_H|RTCC_EXT_H_TO_L = 0|1 = 1 = RTCC_EXT_H_TO_L

Trong cả hai trường hợp, Timer0 chỉ đếm theo 1 cạnh, do đó số xung đếm được là như nhau.

Tùy vào tốc độ xuất hiện xung mà bạn có thể đếm cả 2 cạnh hay không, bằng cách thay đổi cạnh xung được phát hiện ngay sau khi đếm được một cạnh. Cụ thể, ban đầu thiết lập phát hiện cạnh lên, ngay khi đếm được một cạnh lên thì sẽ thiết lập lại để phát hiện cạnh xuống, và cứ như thế. Điều này chỉ có thể thực hiện nếu tốc độ xuất hiện xung tương đối thấp, khi đó PIC có đủ thời gian để thực hiện thuật toán trên. Với tốc độ xuất hiện xung cao, bạn cần phải xử lý bằng phần cứng bên ngoài.

Thân,

kyloti_dung
23-04-2008, 01:21 PM
Bác namqn cho mình hỏi ! Mình cũng làm robot với 8051 rồi !! Nhưng mình thấy 8051 có nhiều han chế quá, làm cứ hay cháy hoài !! Gần 1 tháng nay mình mới chuyển qua PIC và không biết chọn con nào để học. Với kinh nghiệm của Bác namqn thì mình nên chọn con nào để bắt đầu học !! Rất mong được Bác Giúp đỡ !!

namqn
23-04-2008, 07:42 PM
Bác namqn cho mình hỏi ! Mình cũng làm robot với 8051 rồi !! Nhưng mình thấy 8051 có nhiều han chế quá, làm cứ hay cháy hoài !! Gần 1 tháng nay mình mới chuyển qua PIC và không biết chọn con nào để học. Với kinh nghiệm của Bác namqn thì mình nên chọn con nào để bắt đầu học !! Rất mong được Bác Giúp đỡ !!
Các robot thường dùng động cơ DC thông thường, do đó nếu bạn mới bắt đầu học PIC thì nên chọn PIC16F887 (rẻ tiền, đầy đủ tính năng cần thiết, đầy đủ công cụ hỗ trợ).

Thân,