#define GPIO1_BASE_ADDR (*((volatile unsigned long *)0x4804c000))
#define GPIO1_OE (*((volatile unsigned long *)0x4804c134))
#define GPIO1_SETDATAOUT (*((volatile unsigned long *)0x4804c194))
void delay(void);
void main()
{
GPIO1_OE=~(1<<23);
while(1)
{
GPIO1_SETDATAOUT =(1<<23);
delay();
GPIO1_SETDATAOUT =~(1<<23);
delay();
}
}
void delay(void)
{
unsigned long temp;
for(temp=0x3fff;temp>0;temp–)
;
}
GPIO1_23上的灯一直亮着。。。。
看门狗已经关闭
附件是整个工程,用的是gcc
一般延时时间不够的话灯的亮度会有不同,但是这个竟然跟正常时没什么两样。。。。。
将延时改大一些即可
jianbo qin:
将GPIO1_SETDATAOUT =~(1<<23)
改为GPIO_CLEARDATAOUT =(1<<23)也无济于事
leo chen:
回复 jianbo qin:
裸机的没玩过,需不需要pinmux?
jianbo qin:
回复 leo chen:
不用,我把StarterWare里面的相关函数注视掉功能还是正常,但是我自己写的就不正常。。。。
Denny%20Yang99373:
回复 jianbo qin:
对比一下相关寄存器吧
活着的亡灵:
我也在BBB上做了LED灯的实验,包括闪烁和流水灯都没问题,只用到了GPIO_OE, GPIO_DATAOUT寄存器,偏移值分别是134H,13CH
OE为使能输出,DATAOUT为输出的数据,你可以用这种方法试试
另外,SETDATAOUT寄存器只能将某位置1,不能清0,所以1楼的程序肯定是有问题的
J Z:
你好,其实我想问下,你是如何让BBB使用Starterware的?我试过没有成功,求详细指导。
leo chen:
回复 活着的亡灵:
好像还有个寄存器是GPIO1_CLEARDATAOUT ,可以试试效果
jianbo qin:
回复 J Z:
看一下doc下面的的文档就行了