các bác cho em hỏi về counter của con 16F877A :
em chưa hiểu được lệnh này
setup_COUNTERS (rtcc_state, ps_state);
rtcc_state là một trong những constant sau:
RTCC_INTERNAL // tham số này có nghĩa j ?? em tưởng nó chỉ lấy xung từ chân RA4/TOCK1
RTCC_EXT_L_TO_H //
RTCC_EXT_H_TO_L //
ps_state là một trong những constant sau:
RTCC_DIV_2 // chọn cái tỉ số chia này có nghĩa j , có fai cứ 2 xung thì nó tăng bộ đếm lên 1
RTCC_DIV_4
RTCC_DIV_8
RTCC_DIV_16
RTCC_DIV_32
RTCC_DIV_64
RTCC_DIV_128
em viết một chương trình cho timer1 mà nó ko chạy , em sửa nó từ timer0 (đã chạy)
#include <16f877a.h>
#include <def_877a.h>
#fuses NOWDT ,NOPUT ,NOPROTECT ,NODEBUG,NOBROWNOUT,NOLVP,HS
#use delay(clock=20000000)
int16 count;
#int_timer1
void interrupt_timer1()
{
set_timer1(0);
++count;
if(count==20)
{
count=0;
PORTC=~PORTC;
}
}
void main()
{
TRISC=0x00;
PORTC=0x55;
enable_interrupts(int_timer1);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);
enable_interrupts(global);
set_timer1(0);
// TODO: USER CODE!!
while(true){}
}
các bác cho ý kiến
thay đổi nội dung bởi: kinhaxac, 01-07-2008 lúc 05:44 PM.
|