主题 : LED点亮了,点亮时间怎么算? 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 70001
精华: 0
发帖: 21
金钱: 105 两
威望: 21 点
综合积分: 42 分
注册时间: 2012-05-14
最后登录: 2012-08-14
楼主  发表于: 2012-07-21 18:45

 LED点亮了,点亮时间怎么算?

请教下,micro2440,终于把led等点亮了,弄了一个循环让它一会亮,一会灭。代码如下:
GPBCON    EQU    0X56000010
GPBDAT    EQU    0X56000014
GPBUP    EQU    0X56000018

        AREA LED1,CODE,READONLY
        ENTRY
        CODE32
START
        LDR R0,=GPBCON
        LDR R1,=0X15400
        STR R1,[R0]
        LDR R0,=GPBDAT
LOOP    LDR R1,=0X0
        STR R1,[R0]    
        BL DELAY            //延迟
        LDR R1,=0X1E0
        STR R1,[R0]
        BL DELAY            //延迟
        BL LOOP
        
DELAY
        LDR R3,=0X400000        //怎么计算时间呢??
TAG
        SUB R3,R3,#1
        CMP R3,#0
        BNE TAG
        MOV PC,LR
        END

我想问下,怎么确定灯亮的时间呢?我只知道时钟频率应该是12MHZ,SUB,CMP,BNE的指令周期不知道,看手册上也不懂,是不是需要把这3个指令的周期加起来呢?
自由,自强,共享,共创。
级别: 论坛版主
UID: 12573
精华: 27
发帖: 8838
金钱: 46490 两
威望: 9298 点
综合积分: 18216 分
注册时间: 2010-01-09
最后登录: 2019-07-16
1楼  发表于: 2012-07-21 18:50
精确计时还是需要timer, 其他都是浮云
新手如何向我们反馈有效的信息,以便解决问题,见此贴:
http://www.arm9home.net/read.php?tid-14431.html

[注]: 此处签名链接仅为指引方向,而非解答问题本身.
级别: 新手上路
UID: 70001
精华: 0
发帖: 21
金钱: 105 两
威望: 21 点
综合积分: 42 分
注册时间: 2012-05-14
最后登录: 2012-08-14
2楼  发表于: 2012-07-21 21:06

 回 1楼(mindee) 的帖子

是不是还需要初始化fclk那些?还没有学到那里,不懂。多谢指点