user6110404:
不知道怎么发图片,出现错误的地方如下:
ECap2Regs.ECCTL1.bit.CAP1POL = EC_FALLING;ECap2Regs.ECCTL1.bit.CAP2POL = EC_FALLING;ECap2Regs.ECCTL1.bit.CAP3POL = EC_FALLING;ECap2Regs.ECCTL1.bit.CAP4POL = EC_FALLING;ECap2Regs.ECCTL1.bit.CTRRST1 = EC_ABS_MODE;ECap2Regs.ECCTL1.bit.CTRRST2 = EC_ABS_MODE;ECap2Regs.ECCTL1.bit.CTRRST3 = EC_ABS_MODE;ECap2Regs.ECCTL1.bit.CTRRST4 = EC_ABS_MODE;错误原因是类似后面的EC_FALLING和EC_ABS_MODE未定义
Green Deng:
图片没有上传成功,用回复框右下角的高级编辑器来上传。
另外,你是使用的官方例程还是自己编写的程序?报错是说标识符未定义,你在程序中有正确定义EC_ABS_MODE吗?
user6110404:
不知道如何放图,出现问题的位置如下
void SetCap2Mode(void)
{ECap2Regs.ECCTL1.bit.CAP1POL = EC_FALLING;ECap2Regs.ECCTL1.bit.CAP2POL = EC_FALLING;ECap2Regs.ECCTL1.bit.CAP3POL = EC_FALLING;ECap2Regs.ECCTL1.bit.CAP4POL = EC_FALLING;ECap2Regs.ECCTL1.bit.CTRRST1 = EC_ABS_MODE;ECap2Regs.ECCTL1.bit.CTRRST2 = EC_ABS_MODE;ECap2Regs.ECCTL1.bit.CTRRST3 = EC_ABS_MODE;ECap2Regs.ECCTL1.bit.CTRRST4 = EC_ABS_MODE;ECap2Regs.ECCTL1.bit.CAPLDEN = EC_ENABLE;ECap2Regs.ECCTL1.bit.PRESCALE = EC_DIV1;ECap2Regs.ECCTL2.bit.CAP_APWM = EC_CAP_MODE;ECap2Regs.ECCTL2.bit.CONT_ONESHT = EC_CONTINUOUS;ECap2Regs.ECCTL2.bit.SYNCO_SEL = EC_SYNCO_DIS;ECap2Regs.ECCTL2.bit.SYNCI_EN = EC_DISABLE;ECap2Regs.ECEINT.all=0x0000;//stop all interruptECap2Regs.ECCLR.all=0xFFFF;//clare all flagECap2Regs.ECCTL2.bit.TSCTRSTOP = EC_RUN;// 启动ECap2Regs.ECEINT.bit.CEVT4=1;// Enable cevt4 interrupt
}错误的原因是类似EC_FALLING和EC_ABS_MODE这类变量没有定义,错误如下:
Description Resource Path Location Type
#20 identifier "EC_FALLING" is undefined Cap_Init.c /ceshi9.8/sourse line 283 C/C++ Problem请问如何解决
user6110404:
回复 Green Deng:
主函数是我自己写的,出现问题的函数是库函数Cap_Init.c
灰小子:
回复 user6110404:
应该有个文件里有:#define EC_ABS_MODE0//在CAPx事件中不重置计数器
这个定义你找找在哪个文件里,估计开发环境没找到。
user6110404:
回复 灰小子:
您好,按您说的方法,解决了这个问题,添加了库文件,但是又产生了新的问题
user6110404:
回复 灰小子:
现在出现了如下问题
Green Deng:
回复 user6110404:
看看程序里面对应语句的标点符号是否正确,分号、大括号等等
user6110404:
回复 Green Deng:
您好,检查以后没有发现错误,还有什么解决办法吗
user6376549:
回复 user6110404:
我刚刚在移植cap捕获时也出现了这样的问题,仔细查看Device.h和GlobalPrototypes.h执行文件,是否有遗漏的未定义的,不要把这个文件替换,只做添加!