牛卧堂MCU技术交流
标题:
EBI_Open();函数的执行速度,请问有明确数据吗?
[打印本页]
作者:
匿名
时间:
2025-1-21 11:22
标题:
EBI_Open();函数的执行速度,请问有明确数据吗?
#define EBI_TIMING_FASTEST 0x0UL /*!< EBI timing is the fastest \hideinitializer */
#define EBI_TIMING_VERYFAST 0x1UL /*!< EBI timing is very fast \hideinitializer */
#define EBI_TIMING_FAST 0x2UL /*!< EBI timing is fast \hideinitializer */
#define EBI_TIMING_NORMAL 0x3UL /*!< EBI timing is normal \hideinitializer */
#define EBI_TIMING_SLOW 0x4UL /*!< EBI timing is slow \hideinitializer */
#define EBI_TIMING_VERYSLOW 0x5UL /*!< EBI timing is very slow \hideinitializer */
#define EBI_TIMING_SLOWEST 0x6UL /*!< EBI timing is the slowest \hideinitializer */
EBI_Open(EBI_BANK0, EBI_BUSWIDTH_16BIT, EBI_TIMING_NORMAL, 0, EBI_CS_ACTIVE_LOW);
另外,这个还需要单独设置吗?
#define EBI_MCLKDIV_1 0x0UL /*!< EBI output clock(MCLK) is HCLK/1 \hideinitializer */
#define EBI_MCLKDIV_2 0x1UL /*!< EBI output clock(MCLK) is HCLK/2 \hideinitializer */
#define EBI_MCLKDIV_4 0x2UL /*!< EBI output clock(MCLK) is HCLK/4 \hideinitializer */
#define EBI_MCLKDIV_8 0x3UL /*!< EBI output clock(MCLK) is HCLK/8 \hideinitializer */
#define EBI_MCLKDIV_16 0x4UL /*!< EBI output clock(MCLK) is HCLK/16 \hideinitializer */
#define EBI_MCLKDIV_32 0x5UL /*!< EBI output clock(MCLK) is HCLK/32 \hideinitializer */
#define EBI_MCLKDIV_64 0x6UL /*!< EBI output clock(MCLK) is HCLK/64 \hideinitializer */
#define EBI_MCLKDIV_128 0x7UL /*!< EBI output clock(MCLK) is HCLK/128 \hideinitializer */
作者:
chrishu
时间:
2025-1-22 11:42
EBI_Open
函数里的宏定义时序快慢只是软件里用的而已。
实际快慢看
EBI_Open
函数里的每个case下设置的MCLK分频系数和时序控制的设置。MCLKDIV的分频系数在open函数里已经设置过了。
switch
(
u32TimingClass
)
{
case
EBI_TIMING_FASTEST
:
*
pu32EBICTL
=
(
*
pu32EBICTL
&
~
(
EBI_CTL_MCLKDIV_Msk
|
EBI_CTL_TALE_Msk
))
|
(
EBI_MCLKDIV_1
<<
EBI_CTL_MCLKDIV_Pos
)
|
//1分频
(
u32CSActiveLevel
<<
EBI_CTL_CSPOLINV_Pos
)
|
EBI_CTL_EN_Msk
;
//时序控制
*
pu32EBITCTL
=
0x0U
;
break
;
case
EBI_TIMING_VERYFAST
:
/
*
pu32EBICTL
=
(
*
pu32EBICTL
&
~
(
EBI_CTL_MCLKDIV_Msk
|
EBI_CTL_TALE_Msk
))
|
(
EBI_MCLKDIV_1
<<
EBI_CTL_MCLKDIV_Pos
)
|
//1分频
(
u32CSActiveLevel
<<
EBI_CTL_CSPOLINV_Pos
)
|
EBI_CTL_EN_Msk
|
(
0x3U << EBI_CTL_TALE_Pos
) ;
//地址锁存时间 = 4MCLK
//时序控制
*
pu32EBITCTL
=
0x03003318U
;
break
;
......
}
欢迎光临 牛卧堂MCU技术交流 (http://nuvoton-mcu.com/)
Powered by Discuz! X3.2