本帖最后由 qc254577582 于 2011-3-13 23:38 编辑
下面是bf533 led测试的例子:
#include "ccblkfn.h"
#include "sysreg.h"
#include <sys\exception.h>
#include <cdefBF533.h>
#define pDebugLed (volatile unsigned char *)0x203b0000
#define DelayValue 5000000
void main(void)
{
unsigned int i;
*pEBIU_AMBCTL0 = 0x7bb07bb0;//WAT:7C,RAT:11C,HT:2C,ST:3C,4CYCLES FOR BANK TRANSITION
*pEBIU_AMBCTL1 = 0x7bb07bb0;
*pEBIU_AMGCTL = 0x000f;
while(1)
{
*pDebugLed = 0x00;
for(i=0;i<DelayValue;i++){;}
*pDebugLed = 0xff;
for(i=0;i<DelayValue;i++){;}
}
}
这是bf533点亮led实验,可是以上那段对EBIU异步存储单元控制寄存器设置的程序有什么用(Q1:设置异步存储单元读访问,写访问,保持,建立的时序,可是就一个led实验也要设置这个么,如果要的话又是以什么规则设定的?),好像没有了也可以点亮led吧?
Q2:还有就是这段:#define pDebugLed (volatile unsigned char *)0x203b0000
是因为用了cpld才要对寄存器地址重新定义,还是本来就要用户自己定义,如果是用户自己定义的那是根据什么规则,led就一定是 这个地址么?
谢谢大家,请畅所欲言吧!! |