sanmaodeai 发表于 2020-10-4 15:18:10

关于15F2K60S2连接接收机后的操作

本帖最后由 sanmaodeai 于 2020-10-4 21:46 编辑

我这边要实现这样一个功能:
1. 单片机外部中断0连接到遥控器PWM信号上;
2. 默认单片机P2 P1输出0xffff;
3. 遥控器PWM信号每触发一次,0xffff左移一位,类似0xfffe -- 0xfffd--0xfffb -- 0xfff7类似这样的操作;

主要问题是:

PWM信号为50Hz,高电平0.5ms~2.5ms的高电平方波,默认0.5ms,切换时会到2.5ms,(就是按照外部中断触发定时器计时来判断a的值)如果是普通开关比较好做,这个我应该怎么判断每切换一次就移位一次?
大概的程序如下:


void check(void)
{
                if( a>500 && a < 1200 && flag == 1)          //TRIGGER
                {
                        flag = 0;
                        if(P2 == 0xff)                        
                                {
                                        P2 = 0xfe ;
                                }
                        else
                                {
                                        P2 = _crol_(P2,1) ;                               
                                }

                }
                else         if(a>1800 && a<2500 )                                                                                //DEFAULT
                {
                        if(P2 == 0xff)
                                {
                                        P2 =0xfe ;
                                }
                        else
                                {
                                        Delay500ms();
                                        Delay500ms();                                       
                                        P2 = _crol_(P2,1) ;       
                                                                               
                                }
                }
                else
                {   
                        flag = 1;
                }
}

上面代码的主要功能是开关在小档,P2只移动一位,需要把开关打在中档,再调节到小档,才能移动下一位;如果档位在高档,则P2每个1s移位一次,这样是否正常?
页: [1]
查看完整版本: 关于15F2K60S2连接接收机后的操作