| 
 
| 本帖最后由 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就一定是 这个地址么?
 
 谢谢大家,请畅所欲言吧!!
 | 
 |