工具/软件:Code Composer Studio
尊敬的先生:
我是 Mahesh K Joshi。 我使用 了 InitEQep1Gpio(),我编写了 funion 原型,还编写了 extern 以访问 该文件,但它显示以下警告
警告:
#161-D 声明与之前的"InitEQep2Gpio"(在第54行声明)不兼容
#225-D 函数"InitEQep1Gpio"隐式声明
请建议我如何纠正上述警告
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:Code Composer Studio
尊敬的先生:
我是 Mahesh K Joshi。 我使用 了 InitEQep1Gpio(),我编写了 funion 原型,还编写了 extern 以访问 该文件,但它显示以下警告
警告:
#161-D 声明与之前的"InitEQep2Gpio"(在第54行声明)不兼容
#225-D 函数"InitEQep1Gpio"隐式声明
请建议我如何纠正上述警告
void main (void)
{
//步骤1. 初始化系统控制:
// PLL、安全装置、启用外设时钟
//此示例函数位于 DSP2833x_SYSCTRL.c 文件中。
InitSysCtrl();
//步骤2. 初始化 GPIO:
//此示例函数位于 DSP2833x_GPIO.c 文件和中
//说明了如何将 GPIO 设置为其默认状态。
InitGpio();//针对此示例跳过
//在这种情况下、只为 eQEP1和 ePWM1初始化 GPIO
//此函数位于 DSP2833x_eQEP.c 中
InitEQep1Gpio();
InitEPwm1Gpio();
EALLOW;
GpioCtrlRegs.GPADIR.bit.GPIO2 = 1;// GPIO4作为输出模拟索引信号
GpioDataRegs.GPACLEAR.bit.GPIO2 = 1;//通常为低电平
EDIS;
//步骤3. 清除所有中断并初始化 PIE 矢量表:
//禁用 CPU 中断
Dint;
//将 PIE 控制寄存器初始化为默认状态。
//默认状态为禁用所有 PIE 中断和标志
//被清除。
//此函数位于 DSP2833x_PIECTRL.c 文件中。
InitPieCtrl();
//禁用 CPU 中断并清除所有 CPU 中断标志:
IER = 0x0000;
IFR = 0x0000;
//使用指向 shell 中断的指针初始化 PIE 矢量表
//服务例程(ISR)。
//这将填充整个表,即使是中断也是如此
//在本例中未使用。 这对于调试很有用。
//可以在 DSP2833x_DefaultIsr.c 中找到 shell ISR 例程
//此函数可在 DSP2833x_PieVect.c 中找到
InitPieVectTable();
//此示例中使用的中断被重新映射到
//此文件中的 ISR 函数。
EALLOW;//这是写入 EALLOW 受保护寄存器所必需的
PieVectTable.EPWM1_INT=&prdTick;
PieVectTable.EQEP1_INT=&EQEP1_UTO_ISR;
EDIS;//这是禁止写入 EALLOW 受保护寄存器所必需的
//步骤4. 初始化所有器件外设:
initEpwm();//此函数存在于 example_EPwmSetup.c 中
//步骤5. 特定于用户的代码、启用中断:
//启用连接到 CPU 定时器0的 CPU INT1:
IER |= M_INT3;
IER |= M_INT5;
//在 PIE:组3中断1中启用 TINT0
PieCtrlRegs.PIEIER3.bit.INTx1 = 1;
PieCtrlRegs.PIEIER5.bit.INTx1 = 1;
//启用全局中断和更高优先级的实时调试事件:
EINT;//启用全局中断 INTM
ERTM;//启用全局实时中断 DBGM
// long int new_pos;
//new_pos = EQep1Regs.QPOSLAT;
POSSPEED_Init();
// qep_posspeed.init(&qep_posspeed);
for (;;)
{
count=count;
}
}