View Single Post
Old 01-12-2010, 08:16 PM   #2
xuanducdhcn
Đệ tử 1 túi
 
Tham gia ngày: Mar 2010
Bài gửi: 13
:
Talking

Trích:
Nguyên văn bởi magic_boy_1989 View Post
em có 1 đoạn code truyen ki tu như sau : không biết la hàm if(c==65 đúng không)hay if(c==A), nhờ mấy huyen xem hộ code co bi sai không ?em muốn nhấn A thi pinB0=0 tương tự khi nhấn B va C,chi em vơi mốt là em phải nộp báo cáo rui Thanks
char c;
////////////////Chuong Trinh Con////////////////////////////////////

#INT_RDA //khai bao ngat khi co tin hieu thanh cong tu cong com
void receive_isr()
{
c=getc(); // thu du lieu nhan duoc cat giu vao bien c
while(1)
{
if (c==65){ //65 la ma DEC cua chu A
input(pin_B0.0);
}
if (c==66){ //66 la ma DEC cua chu B
input(pin_B2.0);
}
if (c==67){ //66 la ma DEC cua chu B
input(pin_B4.0);
}
}
}
void main()
{while(true)
{

ENABLE_INTERRUPTS(INT_RDA); // ngat khi data nhan tu RS232 san sang
ENABLE_INTERRUPTS(GLOBAL); // ngat toan cuc
....
}
//
Quan trọng là bạn gửi tín hiệu từ PC-> PIC ở dạng nào thôi nếu gửi dạng DEC thì như vậy là đúng rồi
Còn nếu gửi dạng ký tự thì ( c==a) là đúng
bạn dùng hàm switch trông sẽ hay hơn cái này mình đang dùng này hy vọng giúp được bạn

#INT_RDA
void RDA_interrupt(){
value = getc();
delay_ms(10);
putc(value);
switch(value)
{
case 'f': forward(); break; // neu ky tu nhan duoc la 'f' di thang.
case 'l': left(); break;
case 'r': right(); break;
case 'b': backward(); break;
case '1': M1_forward(); break;
case '2': M1_backward(); break;
case '3': M1_stop(); break;
case '4': M2_forward(); break;
case '5': M2_backward(); break;
case '6': M2_stop(); break;
default: full_stop(); break;

}
}
xuanducdhcn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn