主题 : LED灯的问题 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 3465
精华: 0
发帖: 11
金钱: 65 两
威望: 29 点
综合积分: 22 分
注册时间: 2009-01-12
最后登录: 2017-09-13
楼主  发表于: 2010-09-07 18:16

 LED灯的问题

我写了个简单的程序
.text
.global _start
_start:
    LDR R0,=0x56000010
    LDR R1,=0x155555
    STR R1,[R0]
    LDR R0,=0x56000014

    LDR R3,=0x000fffff
    LDR R1,=0x00000080
    STR R1,[R0]
delay1:
    SUBS R3,R3,#1
    BNE delay1
    LDR R3,=0x000fffff
    LDR R1,=0x00000040
    STR R1,[R0]
delay2:
    SUBS R3,R3,#1
    BNE delay2
    LDR R1,=0x00000020
    STR R1,[R0]

    B _start

想要从LED3到LED1一个个的亮,可是只有LED3和LED2在转换,我想不通原因,请大家赐教
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
1楼  发表于: 2010-09-07 22:38
delay2:
    SUBS R3,R3,#1
    BNE delay2
    LDR R1,=0x00000020
    STR R1,[R0]

    B _start

你不觉得在“B _start”之前应该再加一个delay吗?
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 新手上路
UID: 3465
精华: 0
发帖: 11
金钱: 65 两
威望: 29 点
综合积分: 22 分
注册时间: 2009-01-12
最后登录: 2017-09-13
2楼  发表于: 2010-09-08 09:56
那我在B _start之前又加了
        LDR R3,=0x000fffff
delay3:
        SUBS R3,R3,#1
        BNE delay3
但是还是不行,斑竹的意思是,中间没有延时直接跳到LED1了吧。
我其实原来代码是这样的
.text
.global _start
_start:
        LDR R0,=0x56000010
        LDR R1,=0x155555
        STR R1,[R0]
        LDR R0,=0x56000014
        LDR R1,=0x00000020
cycled1:
        LDR R2,=4

cycled2:
        STR R1,[R0]
        LDR R3,=0x000fffff
delay:
        SUB R3,R3,#1
        CMP R3,#0
        BNE delay

        MOV R1,R1,LSL#1
        SUB R2,R2,#1
        CMP R2,#0
        BNE cycled2
        B cycled1
效果还是一样,反正跑马灯就是只能亮2个跑,不知道到底忽略了哪个 细节,板的LED1,2,3没有问题,因为我一个个都试过了,可以开关。请赐教
[ 此帖被linver在2010-09-08 10:32重新编辑 ]
级别: 新手上路
UID: 3465
精华: 0
发帖: 11
金钱: 65 两
威望: 29 点
综合积分: 22 分
注册时间: 2009-01-12
最后登录: 2017-09-13
3楼  发表于: 2010-09-08 10:42
哦,忽然有了灵感,发现可能原因是看门狗没关,于是添加了关闭看门狗的代码,就可以了,现在有个问题,如果初始化时候没有设置看门狗,ARM就一直会重启么?那我们什么时候可以设置看门狗,可以怎样设置呢?请不要让我google- -我知道这个问题简单,但是google的资料总是讲不清楚,希望有人可以帮忙下~
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
4楼  发表于: 2010-09-08 11:40

 回 3楼(linver) 的帖子

"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."