📄 lpc177x_8x_emc.c
字号:
case 2:
LPC_EMC->StaticConfig2 &= ~EMC_STATIC_CFG_CHIPPOLARITY_MASK;
LPC_EMC->StaticConfig2 |= pol_val&EMC_STATIC_CFG_CHIPPOLARITY_MASK;
break;
case 3:
LPC_EMC->StaticConfig3 &= ~EMC_STATIC_CFG_CHIPPOLARITY_MASK;
LPC_EMC->StaticConfig3 |= pol_val&EMC_STATIC_CFG_CHIPPOLARITY_MASK;
break;
default:
return EMC_FUNC_INVALID_PARAM;
}
return EMC_FUNC_OK;
}
/*********************************************************************//**
* @brief Configure the byte lane state
*
* @param[in] index index number, should be from 0 to 3
*
* @param[in] pb_val Byte lane state, should be:
*
* - EMC_CFG_BYTELAND_READ_BITSHIGH: For reads all bits
* in BLSn[3:0] are HIGH.
*
* - EMC_CFG_BYTELAND_READ_BITSLOW: For reads all bits
* in BLSn[3:0] are LOW.
*
* @return EMC_FUNC_OK/EMC_FUNC_INVALID_PARAM
**********************************************************************/
EMC_FUNC_CODE EMC_StaMemConfigPB(uint32_t index , uint32_t pb_val)
{
switch ( index)
{
case 0:
LPC_EMC->StaticConfig0 &= ~EMC_STATIC_CFG_BYTELAND_MASK;
LPC_EMC->StaticConfig0 |= pb_val&EMC_STATIC_CFG_BYTELAND_MASK;
break;
case 1:
LPC_EMC->StaticConfig1 &= ~EMC_STATIC_CFG_BYTELAND_MASK;
LPC_EMC->StaticConfig1 |= pb_val&EMC_STATIC_CFG_BYTELAND_MASK;
break;
case 2:
LPC_EMC->StaticConfig2 &= ~EMC_STATIC_CFG_BYTELAND_MASK;
LPC_EMC->StaticConfig2 |= pb_val&EMC_STATIC_CFG_BYTELAND_MASK;
break;
case 3:
LPC_EMC->StaticConfig3 &= ~EMC_STATIC_CFG_BYTELAND_MASK;
LPC_EMC->StaticConfig3 |= pb_val&EMC_STATIC_CFG_BYTELAND_MASK;
break;
default:
return EMC_FUNC_INVALID_PARAM;
}
return EMC_FUNC_OK;
}
/*********************************************************************//**
* @brief Configure the extended wait value
*
* @param[in] index index number, should be from 0 to 3
*
* @param[in] ex_wait Extended wait mode, should be:
*
* - EMC_CFG_EW_DISABLED: Extended wait disabled.
*
* - EMC_CFG_EW_ENABLED: Extended wait enabled.
*
* @return EMC_FUNC_OK/EMC_FUNC_INVALID_PARAM
**********************************************************************/
EMC_FUNC_CODE EMC_StaMemConfigEW(uint32_t index , uint32_t ex_wait)
{
switch ( index)
{
case 0:
LPC_EMC->StaticConfig0 &= ~EMC_STATIC_CFG_EXTWAIT_MASK;
LPC_EMC->StaticConfig0 |= ex_wait&EMC_STATIC_CFG_EXTWAIT_MASK;
break;
case 1:
LPC_EMC->StaticConfig1 &= ~EMC_STATIC_CFG_EXTWAIT_MASK;
LPC_EMC->StaticConfig1 |= ex_wait&EMC_STATIC_CFG_EXTWAIT_MASK;
break;
case 2:
LPC_EMC->StaticConfig2 &= ~EMC_STATIC_CFG_EXTWAIT_MASK;
LPC_EMC->StaticConfig2 |= ex_wait&EMC_STATIC_CFG_EXTWAIT_MASK;
break;
case 3:
LPC_EMC->StaticConfig3 &= ~EMC_STATIC_CFG_EXTWAIT_MASK;
LPC_EMC->StaticConfig3 |= ex_wait&EMC_STATIC_CFG_EXTWAIT_MASK;
break;
default:
return EMC_FUNC_INVALID_PARAM;
}
return EMC_FUNC_OK;
}
/*********************************************************************//**
* @brief Configure the buffer enable value
*
* @param[in] index index number, should be from 0 to 3
*
* @param[in] buf_val Buffer mode, should be:
*
* - EMC_CFG_BUF_DISABLED: Buffer disabled.
*
* - EMC_CFG_BUF_ENABLED: Buffer enabled.
*
* @return EMC_FUNC_OK/EMC_FUNC_INVALID_PARAM
**********************************************************************/
EMC_FUNC_CODE EMC_StaMemConfigB(uint32_t index , uint32_t buf_val)
{
switch ( index)
{
case 0:
LPC_EMC->StaticConfig0 &= ~EMC_STATIC_CFG_BUFENABLE_MASK;
LPC_EMC->StaticConfig0 |= buf_val&EMC_STATIC_CFG_BUFENABLE_MASK;
break;
case 1:
LPC_EMC->StaticConfig1 &= ~EMC_STATIC_CFG_BUFENABLE_MASK;
LPC_EMC->StaticConfig1 |= buf_val&EMC_STATIC_CFG_BUFENABLE_MASK;
break;
case 2:
LPC_EMC->StaticConfig2 &= ~EMC_STATIC_CFG_BUFENABLE_MASK;
LPC_EMC->StaticConfig2 |= buf_val&EMC_STATIC_CFG_BUFENABLE_MASK;
break;
case 3:
LPC_EMC->StaticConfig3 &= ~EMC_STATIC_CFG_BUFENABLE_MASK;
LPC_EMC->StaticConfig3 |= buf_val&EMC_STATIC_CFG_BUFENABLE_MASK;
break;
default:
return EMC_FUNC_INVALID_PARAM;
}
return EMC_FUNC_OK;
}
/*********************************************************************//**
* @brief Configure the write permission
*
* @param[in] index index number, should be from 0 to 3
*
* @param[in] per_val Permission mode, should be:
*
* - EMC_CFG_WRITEPROTECT_DISABLED: Write not protected.
*
* - EMC_CFG_WRITEPROTECT_ENABLED: Write protected.
*
* @return EMC_FUNC_OK/EMC_FUNC_INVALID_PARAM
**********************************************************************/
EMC_FUNC_CODE EMC_StaMemConfigpP(uint32_t index , uint32_t per_val)
{
switch ( index)
{
case 0:
LPC_EMC->StaticConfig0 &= ~EMC_STATIC_CFG_WRIEPROTECT_MASK;
LPC_EMC->StaticConfig0 |= per_val&EMC_STATIC_CFG_WRIEPROTECT_MASK;
break;
case 1:
LPC_EMC->StaticConfig1 &= ~EMC_STATIC_CFG_WRIEPROTECT_MASK;
LPC_EMC->StaticConfig1 |= per_val&EMC_STATIC_CFG_WRIEPROTECT_MASK;
break;
case 2:
LPC_EMC->StaticConfig2 &= ~EMC_STATIC_CFG_WRIEPROTECT_MASK;
LPC_EMC->StaticConfig2 |= per_val&EMC_STATIC_CFG_WRIEPROTECT_MASK;
break;
case 3:
LPC_EMC->StaticConfig3 &= ~EMC_STATIC_CFG_WRIEPROTECT_MASK;
LPC_EMC->StaticConfig3 |= per_val&EMC_STATIC_CFG_WRIEPROTECT_MASK;
break;
default:
return EMC_FUNC_INVALID_PARAM;
}
return EMC_FUNC_OK;
}
/*********************************************************************//**
* @brief Set the value of LPC_EMC static memory registers
*
* @param[in] index index number, should be from 0 to 3
*
* @param[in] EMC_STA_MEM_PAR Static register, should be:
*
* - EMC_STA_MEM_WAITWEN: StaticWaitWen0 register
* - EMC_STA_MEM_WAITOEN: StaticWaitOen0 register
* - EMC_STA_MEM_WAITRD: StaticWaitRd0 register
* - EMC_STA_MEM_WAITPAGE: StaticWaitPage0 register
* - EMC_STA_MEM_WAITWR: StaticWaitWr0 register
* - EMC_STA_MEM_WAITTURN: StaticWaitTurn0 register
*
* @return EMC_FUNC_OK/EMC_FUNC_INVALID_PARAM
**********************************************************************/
EMC_FUNC_CODE EMC_SetStaMemoryParameter(uint32_t index ,EMC_STA_MEM_PAR par, uint32_t val)
{
switch (index)
{
case 0:
switch ( par)
{
case EMC_STA_MEM_WAITWEN:
LPC_EMC->StaticWaitWen0 = EMC_StaticWaitWen_WAITWEN(val);
break;
case EMC_STA_MEM_WAITOEN:
LPC_EMC->StaticWaitOen0 = EMC_StaticWaitOen_WAITOEN(val);
break;
case EMC_STA_MEM_WAITRD:
LPC_EMC->StaticWaitRd0 = EMC_StaticWaitRd_WAITRD(val);
break;
case EMC_STA_MEM_WAITPAGE:
LPC_EMC->StaticWaitPage0 = EMC_StaticwaitPage_WAITPAGE(val);
break;
case EMC_STA_MEM_WAITWR:
LPC_EMC->StaticWaitWr0 = EMC_StaticWaitwr_WAITWR(val);
break;
case EMC_STA_MEM_WAITTURN:
LPC_EMC->StaticWaitTurn0 =EMC_StaticWaitTurn_WAITTURN(val);
break;
default:
return EMC_FUNC_INVALID_PARAM;
}
break;
case 1:
switch ( par)
{
case EMC_STA_MEM_WAITWEN:
LPC_EMC->StaticWaitWen1 = EMC_StaticWaitWen_WAITWEN(val);
break;
case EMC_STA_MEM_WAITOEN:
LPC_EMC->StaticWaitOen1 = EMC_StaticWaitOen_WAITOEN(val);
break;
case EMC_STA_MEM_WAITRD:
LPC_EMC->StaticWaitRd1 = EMC_StaticWaitRd_WAITRD(val);
break;
case EMC_STA_MEM_WAITPAGE:
LPC_EMC->StaticWaitPage1 = EMC_StaticwaitPage_WAITPAGE(val);
break;
case EMC_STA_MEM_WAITWR:
LPC_EMC->StaticWaitWr1 = EMC_StaticWaitwr_WAITWR(val);
break;
case EMC_STA_MEM_WAITTURN:
LPC_EMC->StaticWaitTurn1 =EMC_StaticWaitTurn_WAITTURN(val);
break;
default:
return EMC_FUNC_INVALID_PARAM;
}
break;
case 2:
switch ( par)
{
case EMC_STA_MEM_WAITWEN:
LPC_EMC->StaticWaitWen2 = EMC_StaticWaitWen_WAITWEN(val);
break;
case EMC_STA_MEM_WAITOEN:
LPC_EMC->StaticWaitOen2 = EMC_StaticWaitOen_WAITOEN(val);
break;
case EMC_STA_MEM_WAITRD:
LPC_EMC->StaticWaitRd2 = EMC_StaticWaitRd_WAITRD(val);
break;
case EMC_STA_MEM_WAITPAGE:
LPC_EMC->StaticWaitPage2 = EMC_StaticwaitPage_WAITPAGE(val);
break;
case EMC_STA_MEM_WAITWR:
LPC_EMC->StaticWaitWr2 = EMC_StaticWaitwr_WAITWR(val);
break;
case EMC_STA_MEM_WAITTURN:
LPC_EMC->StaticWaitTurn2 =EMC_StaticWaitTurn_WAITTURN(val);
break;
default:
return EMC_FUNC_INVALID_PARAM;
}
break;
case 3:
switch ( par)
{
case EMC_STA_MEM_WAITWEN:
LPC_EMC->StaticWaitWen3 = EMC_StaticWaitWen_WAITWEN(val);
break;
case EMC_STA_MEM_WAITOEN:
LPC_EMC->StaticWaitOen3 = EMC_StaticWaitOen_WAITOEN(val);
break;
case EMC_STA_MEM_WAITRD:
LPC_EMC->StaticWaitRd3 = EMC_StaticWaitRd_WAITRD(val);
break;
case EMC_STA_MEM_WAITPAGE:
LPC_EMC->StaticWaitPage3 = EMC_StaticwaitPage_WAITPAGE(val);
break;
case EMC_STA_MEM_WAITWR:
LPC_EMC->StaticWaitWr3 = EMC_StaticWaitwr_WAITWR(val);
break;
case EMC_STA_MEM_WAITTURN:
LPC_EMC->StaticWaitTurn3 =EMC_StaticWaitTurn_WAITTURN(val);
break;
default:
return EMC_FUNC_INVALID_PARAM;
}
break;
}
return EMC_FUNC_OK;
}
/**
* @}
*/
/**
* @}
*/
#endif /*_EMC*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -