STM8L TIM2捕获
用TIM2 捕获频率低的时候还可以,能捕获正确,如果提高频率(大概4KHZ)就不可以了,在加大频率程序就不出捕获中断了#pragma vector=TIM2_CAPCOM_CC2IF_vector
__interrupt void TIM2_CAPCOM_CC2IF_ISR (void)
{
TIM2_SR1 &=~0x04;
ccrSA = TIM2_CCR2H;
ccrSA <<= 8;
ccrSA += TIM2_CCR2L;
if(ccrSA<ccrST&&TStar==0)
{
ccrST = ccrSA;
TStar=65535;
}
else
{
ccr = (65536.0*TStar+ccrSA-ccrST);
if(ccr>3000.0)
delay_us(2);
TStar=0;
ccrST = ccrSA;
ccrADD+=ccr;
ccrnum++;
}
PulseF=1;
if(ccr<=200.0)//换高速
{
gaosu();
}
}
捕捉中断中还有延时和调用子函数,当然快不起来了。 wenyangzeng 发表于 2018-3-20 10:28
捕捉中断中还有延时和调用子函数,当然快不起来了。
但是也不应该到4KHZ就捕获不了了吧, 不建议在中断处理函数里干太多的活儿、占用太多的时间,应该尽快跳出来,在main函数里处理。。。:):):) 自身的系统频率也要高,你的系统频率是多少?
页:
[1]