Xin giÚp ĐỞ thỜi gian trỄ bẰng timer0
ANH EM TRÊN DIỄN ĐÀN XEM CHƯƠNG TRÌNH MÌNH VIẾT TẠO THỜI GIAN TRỄ BẰNG TIMER0 NHUNG KHONG CHẠY
;TAO CHU KY BAT LED 200US O CHAN RBO processor 16f877a include <p16f877a.inc> org 0x00 goto start start ;cai dat portB la dau ra ;============== banksel TRISB clrf TRISB ;cai dat timer0 ;============== movlw b'00000000' movwf OPTION_REG banksel PORTB lap bsf PORTB,0 movlw d'156' movwf TMRO banksel INTCON kt btfss INTCON,2 goto kt bcf PORTB,0 bcf INTCON,2 goto lap goto$ end |
Chưa dịch được hay chưa chạy được
Với code trên thì "movwf TMRO" là chữ O chứ không phải số 0 Cần chú ý tính năng Analog trên mỗi PIN của PIC |
Mình cũng dùng timer1 để tạo trễ nhưng không chạy được như ý:
#include <p30f4011.h> _FOSC(CSW_FSCM_OFF & FRC_PLL4); _FWDT(WDT_OFF); _FBORPOR(MCLR_EN & PBOR_OFF & PWMxL_ACT_HI & PWMxH_ACT_HI); _FGS(CODE_PROT_OFF); void init_port(){ TRISB = 0x00; } void init_timer1(){ PR1 = 0xff; TMR1 = 0; T1CONbits.TCKPS = 1; T1CONbits.TON = 1; } int main(){ init_port(); init_timer1(); while(1){ _LATB1 = 1; while (!T1CONbits.TSIDL); T1CONbits.TSIDL = 0; _LATB1 = 0; while (!T1CONbits.TSIDL); T1CONbits.TSIDL = 0; } } Khi chạy thì pinb1 luôn ở mức cao. Mình không hiểu tại sao. Mong các bạn chỉ giúp. |
cám ơn anh nhiều nhé,em lam chạy rồi.anh cho em hỏi.nếu mình muốn dùng timer0 làm counter thí sao
|
Mình đang thiết kế một cái đồng hồ nhưng gặp răc rối trong việc sử lý timer. Làm thế nào có thể tạo chính xác thời gian 1s. Mình sử dụng thạch anh 12MHz.
Rất mong sự giúp đỡ của mọi người! Thanks! |
Múi giờ GMT. Hiện tại là 06:55 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