【arm求助】led显示不正常
arm吧
全部回复
仅看楼主
level 2
#define GPBCON (*(volatile unsigned long *)0x56000010)
#define GPBDAT (*(volatile unsigned long *)0x56000014)
void wait(unsigned long dy)
{ for(;dy < 0;dy--);
}
int main()
{ GPBCON = 0x00015400;
GPBDAT = 0x00000060;
while(1){
wait(80000);
GPBDAT = 0x180;
wait(80000);
GPBDAT = 0x060;
}
return 0;
}
我的代码执行了GPBDAT = 0x00000060;就没有执行了。我事项要4个led中的2个led点亮,然后转变为另外2个led点亮,并且这两种状态循环。可是看现象,一直维持在第一种状态。
2013年05月09日 17点05分 1
level 2
2013年05月09日 17点05分 2
level 9
给IO口赋值,规范来说 置1用 |=,清除用 &=。不过你这么写的话也不一定错。你应该把你这芯片的GPBCON 、GPBDAT 和GPBUDP的说明还有你的4个LED灯与IO的原理图都发来看看,如果你能具体描述下单步调试的状态最好了。
最后想请教下,你的延迟函数wait真的能起到延迟作用?
2013年05月11日 12点05分 3
level 10
给IO口赋值,规范来说 置1用 |=,清除用 &=。不过你这么写的话也不一定错。你应该把你这芯片的GPBCON 、GPBDAT 和GPBUDP的说明还有你的4个LED灯与IO的原理图都发来看看,如果你能具体描述下单步调试的状态最好了。
最后想请教下,你的延迟函数wait真的能起到延迟作用?
2013年10月16日 23点10分 4
level 4
最好用按位赋值,还有寄存器地址要弄清楚,加头文件就不用了
2013年12月11日 03点12分 5
1