Xin hỏi về ngắt timer của pic16f877a
Mấy ngày nay em trầy trật hoài với cái ngắt timer trong pic. Em không biết là mình cho chạy timer bằng cách nào? (timer0) (trong C có hàm set_timer0()). Trong chương trình phục vụ ngắt mình có dừng timer lại như trong 8051 không?
Đoạn code này em đánh dựa trên hướng dẫn của mấy bài trên diễn đàn. Lúc đầu led sáng số 0, rồi tăng dần khi timer tràn. Trong code em chưa tính thời gian tràn( cho nó nhảy trước rồi tính toán sau), và sau mấy ngày kiếm cách set_timer0() bằng ASM chương trình này chắp vá lung tung rồi. Em mong các tiền bối cảm phiền chỉ dùm em LÀM SAO CHO TIMER0 chạy? ;xuat ra port D ;a la MSB noi voi PD.7 Code:
TITLE "TIMER0" |
Khi bạn nạp 1 giá tri vào thanh ghi OPTION_REG thì timer0 bắt đầu chạy, bạn không thể kiếm soát việc Start, Stop của nó được. Nói chính xác là timer0 chạy song song với chương trình.
Đây là bài đơn giản tôi viết để test ngắt Timer0, hy vọng giúp ích cho bạn Code:
TITLE " nhap nhay rb0_dung timer0 " |
timer0
thankiều sư huynh phandinh. Tui đã làm lại theo hướng dẫn của sư huynh và kết quả là chạy ngon lành!
|
cho e hoi may huynh ty. sao vd tren khong thấy mấy a chon bank? e thấy các vd khac diều chon bank truoc khi thao tac lệnh TRISA.....doi voi pic 18f4331 co nhiều bank thế thì nen chon sau a?
|
em dang lam bai tap lon ve dong ho dem thoi gian thuc dung pic 16f877a lap trinh bang asm
em nghien cuu mai ma khong hieu timer1 bac nao hieu chi e voi cam on cac bac nhieu |
Trích:
chẳng hạn với pic16: -có thể dùng lệnh banksel thanhghi, để truy cập trực tiếp vào vùng bank chứa thanh ghi đó -có thể thao tác với 2 bit rp0, rp1 của thanh ghi STATUS để chọn bank. bạn xem datasheet sẽ rõ. |
Múi giờ GMT. Hiện tại là 04:21 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