新手,在做一个程序,在衔接上有问题
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;
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>