<br /> 偶最近做了一个板子,用LPC2148做的,编了一个非常小的程序去点亮一个LED灯,编译时发现一个问题,用"P0XSET=0x80000000;"代替"P0XCLR=LED;",以及用"P0XSET=0x80000000;"代替"P0XSET=LED;"就能把灯点亮,并且可以一闪一闪的,如果调过来的话就没发点亮LED灯.并且用DELAY()去延时的话,如何改P0XSET和P0XSET都没效果,但编译生成BIN文件过程和AXD的调试过程都成功,没报错的.我是用非利浦的LPC210X_ISP.EXE下载BIN文件的,一直弄不清问题在哪,请大侠们高抬贵手,救小弟一把,非常感谢!!源程序就是下面的<br />//**************init.s******************<br /> IMPORT Main<br /> AREA Init, CODE, READONLY<br /> ENTRY<br /> LDR SP, =0x40001ff0 ;SP指向4K SRAM的尾地址 BL Main<br /> END<br />//********************************<br /><br /><br /><br />//**************Main.c***************** #define PINSEL1 (*(volatile unsigned *)0xE002C004)//管脚功能选择寄存器//<br />#define P0XDIR (*(volatile unsigned *)0xE0028008)//端口0方向择寄存器//<br />#define P0XSET (*(volatile unsigned *)0xE0028004)//端口0位设置寄存器//<br />#define P0XCLR (*(volatile unsigned *)0xE002800C)//端口0位清除寄存器//<br />//#define IOPDATA (*(volatile unsigned *)0x3FFFC007) //IO port data register<br /> #define uchar unsigned char<br /> #define unum32 unsigned long <br /> void Delay(unsigned int);<br /> int Main()<br /> {<br /> unsigned long LED,cl;<br />// IOPMOD=0xFFFFFFFF; //将IO口置为输出模式<br /> PINSEL1=0x00000000; //将IO口置为GIO模式<br /> P0XDIR=0xffffffff; //将IO口置为输出模式<br /> FP0XDIR=0xffffffff; //将IO口置为输出模<br />// IOPDATA=0x01; <br /> LED=0x80000000; <br /> while(1){<br /> P0XCLR=LED; <<-------改为P0XSET=0x80000000;就能点亮<br />// P0XCLR=0x80000000;<br /> for(cl=50000;cl>0;cl--); //延时<br />// Delay(100); <br /> P0XSET=LED; <<-------改为P0XSET=0x80000000;就能点亮<br />// P0XSET=0x80000000;<br /> for(cl=50000;cl>0;cl--); //延时<br />// Delay(100);<br /> }<br /> return(0); <br /> }<br /> <br /> <br /> void Delay(unsigned int x) //延时<br /> {<br /> unsigned int i,j,k;<br /> for(i=0;i<=x;i++)<br /> for(j=0;j<0xff;j++)<br /> for(k=0;k<0xff;k++);<br /> }<br />//******************************<br /><br /><br /><br /> |
|