函数 HW_Init(void)
\return 0 if initialization was successful ----------------- 返回值为0 表示初始化成功
\brief This function initialize the EtherCAT Slave Interface. -------------------- 此函数用于初始化EtherCAT从接口。
UINT16 HW_Init(void)
{
UINT32 intMask = 0;
/* 初始化:
1、同ESC的存储接口
2、ESC中断
3、ECAT看门狗时钟*/
/* 初始化ESC DPRAM与单片机的指针ESC的物理内存的开始*/
pEsc = MAKE_PTR_TO_ESC;
{
UINT16 u16PdiCtrl = 0;
/*宏定义:ESC_PDI_CONTROL_OFFSET 对应地址为0x0140; 0x0140:PDI控制寄存器 使能/终止DC单单元*/
do
{
HW_EscReadWord(u16PdiCtrl,ESC_PDI_CONTROL_OFFSET); //将u16PdiCtrl=0的值写到0x0140地址中,PDI控制寄存器
u16PdiCtrl = SWAPWORD(u16PdiCtrl);
} while (((u16PdiCtrl & 0xFF) < 0x8) || ((u16PdiCtrl & 0xFF) > 0xD) );
}
/* 初始化PDI中断源*/
INIT_ESC_INT;
/* initialize the AL_Event Mask Register:初始化AL_event mask寄存器 */
/* the AL Event-Mask register is initialized with 0, so that no ESC interrupt is generated yet, AL事件掩码寄存器初始化为0,因此尚未生成ESC中断
the AL Event-Mask register will be adapted in the function StartInputHandler in ecatslv.c AL事件掩码寄存器将在ecatslv.c中的函数StartInputHandler中进行调整
when the state transition from PREOP to SAFEOP is made 当状态从PREOP转换到SAFEOP时 */
/*宏定义:ESC_AL_EVENTMASK_OFFSET 0x0204 Al时间中断请求屏蔽
AL时间请求寄存器是否映射到PDI中断信号*IRQ(B12),位定义同AL中断请求寄存器0X0220:0x0223
0:相应的中断请求位不映射
1:相应的中断请求位映射
复位0xFF;0xFF0F*/
HW_EscWriteDWord(intMask, ESC_AL_EVENTMASK_OFFSET);
/* enable the ESC-interrupt microcontroller specific,
the macro ENABLE_ESC_INT should be defined in ecat_def.h */
/*启用特定于微控制器的ESC中断,宏ENABLE_ESC_INT应该在ecat_def.h中定义*/
ENABLE_ESC_INT();
return 0;
}
void HW_Release(void)
{
}