正好在做电机测速,
//GPIOE3作为脉冲1信号的输入
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE);
GPIODirModeSet(GPIO_PORTE_BASE, GPIO_PIN_3, GPIO_DIR_MODE_IN);
GPIOPadConfigSet(GPIO_PORTE_BASE, GPIO_PIN_3,GPIO_STRENGTH_2MA,GPIO_PIN_TYPE_STD_WPU );
while(1)
{//当读入的计数脉冲信号没有翻转时,始终读取该信号
while(GPIOPinRead(GPIO_PORTE_BASE,GPIO_PIN_3)!=status)
{
cnt2++;
}
cnt1++;
status = 1-status;
//若信号翻转,则计数加1,同时改变status为当前状态值,等待下
//一次翻转,这样得以保证每一个上升沿和下降沿都被计数。
}
但是发现GPIOPinRead(GPIO_PORTE_BASE,GPIO_PIN_3)读回来的全部都是0,结果就没预想的一样能记录脉冲个数了。(光编是有脉冲发回来的。)
看到的大神能指点一下。
|