giúp em về cái đọc encoder với
đây là đoạn mã từ diễn đàn
#include "16f877a.h"
#fuses hs
#use delay (clock = 8000000)
#include <abc.c>
int16 a,count,xung,b;
int8 nghin,tram,chuc,donvi;
#int_rtcc // Ngat Timer 0
void Timer0_isr() //CHAN TIMER0 LA RA4
{ set_timer0(255);
xung++;
if (xung==2)
{
xung=1;
}
b++;
}
void hienthi(int16 b)
{
a=get_timer0();
nghin = b / 1000 ;
tram = b % 1000/100 ;
chuc = b % 1000%100/10 ;
donvi = b % 1000%100%10;
lcd_gotoxy(3,2);
printf(lcd_putc,"%1d%1d%1d%1d",nghin,tram,chuc,don vi);
}
void main()
{
lcd_init();
a=0; xung=0; b=0;
setup_timer_0 (RTCC_EXT_l_TO_h);
setup_counters (rtcc_ext_l_to_h,RTCC_DIV_1);
set_timer0(0);
enable_interrupts(INT_RTCC);
enable_interrupts(GLOBAL);
lcd_gotoxy(2,1);
printf(lcd_putc,"Do encoder");
set_tris_a(0xff);
count = 0;
while (TRUE)
{
hienthi(b);
}
}
xung cứ tăng lên
nếu tính vận tốc phải làm sao ,anh chị chỉ em với công thức giải thích dùm em
|