#include <16F877A.h>
#fuses HS,NOPUT,NOWDT,NOPROTECT
#use delay (clock = 10000000)
#use rs232 (baud =9600,parity=N,xmit = PIN_C6,rcv =PIN_C7,stream = rs232,bits=8)
unsigned char c[6]={};
unsigned char pass1[6]={0x02,0x33,0x42,0x30,0x30,0x33};
int i;
int light=0;
int flag=1;
void main()
{
while (true)
{
for(i=0;i<6;i++)
{
c
= fgetc(rs232);
}
if((c[0]==pass1[0])&&c[1]==pass1[1])&&c[2]==pass1[2])&&c[3]==pass1[3])&&c[4]==pass1[4])&&c[5]==pass1[5]))
{flag++;}
c=0;
if(flag%2==0)
{
if(light%2==0)
{
output_HIGH(pin_B2);
output_HIGH(pin_B0);
delay_ms( 3000 );
output_LOW(pin_B0);
}
else
{output_LOW(pin_B2);
output_HIGH(pin_B0);
delay_ms( 3000 );
output_LOW(pin_B0);}
light++;
}
else
{output_HIGH(pin_B1);
delay_ms( 3000 );
output_LOW(pin_B1);
}
}
}
คือผมกำลังศึกษาเรื่อง เครื่องอ่าน RFID กับ pic16f877a
ผมได้ทำการทดลองมาเรื่อยๆจนสามารถรับค่าจาก rfid ด้วยฟังก์ชั่น c=fgetc(rs232)แล้วเก็บค่ามาเปรียบเทียบเพื่อให้ pic สั่งการเปิดปิด หลอด led ได้แล้ว
ซึ่งผมอยากจะขอคำปรึกษาว่า ทำไมมันถึงรับค่าจาก rfid ได้เพียงครั้งเดียว ทั้งๆที่ผมใช้ while(true) แล้ว
ขอบคุณมากครับ
ปล.มีพี่ๆแนะนำให้ใช้ interrupts แต่ลองแบบมั่วๆแล้วผลไม่ออก
แต่
ใครพอทราบเรื่อง uart ช่วยหน่อยครับ
#fuses HS,NOPUT,NOWDT,NOPROTECT
#use delay (clock = 10000000)
#use rs232 (baud =9600,parity=N,xmit = PIN_C6,rcv =PIN_C7,stream = rs232,bits=8)
unsigned char c[6]={};
unsigned char pass1[6]={0x02,0x33,0x42,0x30,0x30,0x33};
int i;
int light=0;
int flag=1;
void main()
{
while (true)
{
for(i=0;i<6;i++)
{
c = fgetc(rs232);
}
if((c[0]==pass1[0])&&c[1]==pass1[1])&&c[2]==pass1[2])&&c[3]==pass1[3])&&c[4]==pass1[4])&&c[5]==pass1[5]))
{flag++;}
c=0;
if(flag%2==0)
{
if(light%2==0)
{
output_HIGH(pin_B2);
output_HIGH(pin_B0);
delay_ms( 3000 );
output_LOW(pin_B0);
}
else
{output_LOW(pin_B2);
output_HIGH(pin_B0);
delay_ms( 3000 );
output_LOW(pin_B0);}
light++;
}
else
{output_HIGH(pin_B1);
delay_ms( 3000 );
output_LOW(pin_B1);
}
}
}
คือผมกำลังศึกษาเรื่อง เครื่องอ่าน RFID กับ pic16f877a
ผมได้ทำการทดลองมาเรื่อยๆจนสามารถรับค่าจาก rfid ด้วยฟังก์ชั่น c=fgetc(rs232)แล้วเก็บค่ามาเปรียบเทียบเพื่อให้ pic สั่งการเปิดปิด หลอด led ได้แล้ว
ซึ่งผมอยากจะขอคำปรึกษาว่า ทำไมมันถึงรับค่าจาก rfid ได้เพียงครั้งเดียว ทั้งๆที่ผมใช้ while(true) แล้ว
ขอบคุณมากครับ
ปล.มีพี่ๆแนะนำให้ใช้ interrupts แต่ลองแบบมั่วๆแล้วผลไม่ออก
แต่