View Single Post
Old 05-10-2011, 05:36 PM   #1
vuliemtd
Nhập môn đệ tử
 
Tham gia ngày: Mar 2010
Bài gửi: 3
:
Arrow đọc encorder trên pic 16f877a

mình vừa nghiên cứu họ vi điều khiển này. có viết một chương trình đọc số lần ngắt xảy ra trên chân RB0, ở đây mình giả tín hiệu là nút nhấn được nối xuống mass.Mình đã test thử, thấy kết quả đôi lúc bị nhảy mất 2,3 tín hiệu, ví dụ như xung số lần tác động đang là 15, mình nhấn nút bấm một lần nữa đã lên 16,17 luôn. mình đưa chương trình lên nhờ mọi người góp ý nha!


#include <16F877a.h>

#device *=16 //ADC=8
#use delay(clock = 20000000)
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7)

#INT_EXT

void ngat()
{
a=a+1;
printf("gia tri dem la : %u ", a);
delay_ms(20);
}

void main() {
set_tris_b(0x01);
enable_interrupts(global);
enable_interrupts(INT_EXT);// thiet lap ngat ngoai rb0
ext_int_edge(l_TO_h);
port_b_pullups(true);


while (TRUE)
{



}

}

thay đổi nội dung bởi: vuliemtd, 17-10-2011 lúc 04:53 PM.
vuliemtd vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn