求助,请问有什么办法能让我红外发送的低电平更稳定

2019-07-15 08:13发布

比如这个RC-5协议,正常的是这样的: 遥控器发的 我发送的话是这样: 我自己发的
发送程序是这样的:
//定时器1中断处理
void timeint(void) interrupt 3
{
        TR1 = 0;        //STOP

        TF1 = 0;        //CLEAR FLAG

                TL1 = (us2tcnt(3) & 0x00FF);
                TH1 = (us2tcnt(3) >> 8);
        TR1 = 1;        //RUN


        count++;
        if (flag==1)
                OP=~OP;
        else
                OP = 0;
        IR_SEND = OP;
}
void SendIRdata_38KHZ(unsigned int temp1, bit temp2)
{
unsigned int endcount = temp1;
        flag = temp2;
        EA = 0;
        count = 0;
        EA = 1;
        while(1)
        {
                EA = 0;
                if(count < endcount)
                        EA = 1;
                else
                {
                        EA = 1;
                        break;
                }
        }
}
我通过调整temp1这个参数会出现:调大,发出来的数据会在1.45(最多),1.81,1.01浮动的数据,
原来是有个timer0在工作的,但是进入发送程序之前已经关闭了,TR0=0。

0条回答

一周热门 更多>