这个程序怎么有这样的运行效果 ????<br /><br />环境是ADS1.2 PE口接了几个LED;<br />我是初学者,想从最基本的开始,<br />44B0板我就写一个短短的程序就让一个LED闪烁,就遇到这么多问题.我不用外部RAM,用内部8K的RAM.在编译之前是不是得改一下RO BASE 中的内容?改在内部RAM的地址 ?这个内容对MAKE有什么影响?烧FLASH时也要添RAM的起使地址,又有什么用 ?我把下面的程序烧进去之后灯就闪烁了,但是复位之后闪烁的就慢了,不象刚烧进去闪烁那么快.是由于从FLASH中读程序再执行引起的吗 ?<br /><br />还有一个问题就是把主函数中的延时程序用delay()代替之后,灯就不闪了,这是怎么了 ?<br /><br />init.s <br /><br />IMPORT Main<br />AREA Init,CODE,READONLY<br />ENTRY <br />LDR R0, =0x01c00000 <br />LDR R1, =0x01 ;<br />STR R1, [R0] <br />LDR SP, =0x10000000 ;<br /><br />LDR R0, =0x01c00000 <br />STMFD R13!,{R0}<br />LDR R0, =0x01c00156 ;刚开始没有初始化SP,怀疑是堆栈的问题,这里测试堆栈.<br />LDMFD R13!,{R0}<br />CMP R0,#0x01c00000<br /><br />BLEQ Main<br />B .<br />END<br /><br /><br />下面是led.c<br /><br />#define rPCONE (*(volatile unsigned *)0x1d20028)<br />#define rPDATE (*(volatile unsigned *)0x1d2002c)<br />#define rPUPE (*(volatile unsigned *)0x1d20030)<br />void Delay(void);<br />int Main()<br />{<br />unsigned long LED,j,i,k;<br />rPCONE=0x00005555; //将IO口置为输出模式<br /><br />for(;;){<br />rPDATE=0xfe;<br />for(i=0;i<=5;i++)<br />for(j=0;j<0x0ff;j++)<br />for(k=0;k<0x0ff;k++);<br /><br />rPDATE=0xff;<br /><br />for(i=0;i<=5;i++)<br />for(j=0;j<0x0ff;j++)<br />for(k=0;k<0x0ff;k++);<br />}<br />return(0); <br />}<br />void Delay()<br />{<br />unsigned int i,j,k;<br />for(i=0;i<=5;i++)<br />for(j=0;j<0x0ff;j++)<br />for(k=0;k<0x0ff;k++);<br />}<br /><br /> |