View Single Post
Old 19-03-2010, 09:54 PM   #2
phamngocloi
Đệ tử 1 túi
 
Tham gia ngày: Jan 2008
Bài gửi: 15
:
chỉ giúp với:
minh viết code đọc 2encorder dùng timer1 và timer2 ở chế độ cuonter, nhưng timer1 đọc được còn timer2 không đọc được. ko biết có sai code ko
#include <16f877a.h>
#fuses NOWDT,NOPROTECT,XT,NOLVP
#use delay(clock=4000000)
#include <LCD.c>
#define interr_per_second 20//khi set_timer1(15535)timer 1 16 bit=>65535-15535=50.000us
#define interr_per_100ms 2//khi set_timer1(15535)
int8 timer1over,duty_cycle,dem=0,c;
int16 so_vong,count,count1;
char mang[5];
int1 flag;
#int_rtcc
void interrupt_timer0()//dem so xung encoder
{
++count;
}
#int_timer1 // ngat timer 1 khi timer 1 tran
void interrupt_timer1()
{
++count1;
}
void main ()
{
lcd_init();
delay_ms(100);

set_tris_a(0xff); //cho port a la port thu, su dung chan RA4
set_tris_b(0x01);
output_b(0x01); //tao muc cao cho ngat ngoai
set_tris_c(0x01);
// enable cac timer
setup_timer_0(rtcc_div_1|rtcc_ext_h_to_l); // timer 0 lam couter
set_timer0(0); // gia tri dau timer 0
setup_timer_1(t1_external|t1_div_by_1); // timer1 lam counter
set_timer1(0); /
// configue cac ngat
enable_interrupts(global); //cho phep ngat
enable_interrupts(int_rtcc); // ngat timer 0
enable_interrupts(int_timer1); // ngat timer 1


ext_int_edge(h_to_l);
while(true)
{

lcd_gotoxy(1,1);
printf(lcd_putc,"so vong1:%ld",count);
lcd_gotoxy(1,2);
printf(lcd_putc,"so vong1:%ld",count1);
}
}
phamngocloi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn