红外程序有两个不太懂的地方
时间:10-02
整理:3721RD
点击:
void EXINT1_ISR() interrupt 2
{
unsigned char i,j;
unsigned char byt;
unsigned int time;
time=GetLowTime();
if((time<7833)||(time>8755))
{
IE1=0;
return;
}
time=GetHighTime();
if((time<3686)||(time>4608))
{
IE1=+0;
return;
}
for(i=0;i<4;i++)
for(j=0;j<8;j++)
{
time=GetLowTime();
if((time<313)||(time>718))
{
IE1=0;
return;
}
time=GetHighTime();
if((time>313)&&(time<718))
{
byt>>=1;
}
else if((time>1345)&&(time<1751))
{
byt>>=1;
byt|=0x80;
}
这段程序的byt有点理解不了。
1.byt怎么接收数据
2.byt|=0x80;这是为什么?为什么上面一个byt不加byt|=0x80;
{
unsigned char i,j;
unsigned char byt;
unsigned int time;
time=GetLowTime();
if((time<7833)||(time>8755))
{
IE1=0;
return;
}
time=GetHighTime();
if((time<3686)||(time>4608))
{
IE1=+0;
return;
}
for(i=0;i<4;i++)
for(j=0;j<8;j++)
{
time=GetLowTime();
if((time<313)||(time>718))
{
IE1=0;
return;
}
time=GetHighTime();
if((time>313)&&(time<718))
{
byt>>=1;
}
else if((time>1345)&&(time<1751))
{
byt>>=1;
byt|=0x80;
}
这段程序的byt有点理解不了。
1.byt怎么接收数据
2.byt|=0x80;这是为什么?为什么上面一个byt不加byt|=0x80;
刚学单片机不久,很多不太懂希望可以详细说明
第一个是定义,第二个是赋值,建议你先看看C语言的书籍