求大神指点:从ad到捕获到判断之间的衔接问题

2019-08-13 20:43发布

新手,在做一个程序,在衔接上有问题
        while(1)
{
        TIM1_PWM_Init(899,0);                        
        TIM2_Cap_Init(0XFFFF,72-1);               

                adc_init();         
                ADC_SoftwareStartConvCmd(ADC1, ENABLE);
                while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC));
                ad=ad+ADC_GetConversionValue(ADC1);               
                if(ad>1.5&&ad<3.3)
                {
                 GPIO_SetBits(GPIOA,GPIO_Pin_0);
                }
                else GPIO_ResetBits(GPIOA,GPIO_Pin_0);
                TIM_SetCompare1(TIM1,TIM_GetCapture1(TIM1)+1);
                if(TIM_GetCapture1(TIM1)==300)TIM_SetCompare1(TIM1,0);                 
                if(TIM2CH1_CAPTURE_STA&0X80)
                {
                        temp=TIM2CH1_CAPTURE_STA&0X3F;
                        temp*=65536;                                       
                        temp+=TIM2CH1_CAPTURE_VAL;               
                        printf("HIGH:%d us ",temp);       
                        TIM2CH1_CAPTURE_STA=0;                       
                }
                if(temp<200)  key=0;
                if(temp>200&&temp<1000)key=1;
                if(temp>1000)key=2;
                switch(key)
        {
                        case 0  : keysta=0X01;delay_ms(40); break;
                        case 1 : keysta=0X02; delay_ms(40); break;
                        case 2 :        keysta=0X04; break;
                default :keysta=0;break;
        }

}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
glj2018
1楼-- · 2019-08-13 23:46
求问,这样能时时输出ad值然后变成方波捕获高电平时间吗?
正点原子
2楼-- · 2019-08-14 05:23
自己测试啊

一周热门 更多>