本帖最后由 wazhzlp 于 2013-2-5 09:34 编辑
我用了3个IO中断来BLDC的霍尔信号,分别是P2.0、P2.1、P2.2中断程序如下:
#pragma interrupt_handler HALL_ISR
void HALL_ISR(void)
{
BYTE tmpHallIn ;
LED_1_Invert();
tmpHallIn = PRT2DR & (HALL1|HALL2|HALL3);
switch(tmpHallIn)
{
case 6: //1
.
.
}
}
最后观察LED_1波形和IO输入延时偶100us。而我看别人的程序只有50us一下。而昨天发的帖子中也说明了在输入波形发生反转的时候,输出会有干扰:
上图中黄色的通道有一个尖脉冲,黄色为中断函数感知IO中断之后产生的波形,而下面的就是我们的3个端口的IO输入。
我在前面的帖子描述了,我今天突然和一些做得比较好的程序的波形进行了对比。发现他们的波形很好看,而且延时也只有50us以下,我在想是不是因为的我程序问题,导致了该黄色波形的干扰的产生。
|