主题 : 关于裸机速度问题(我是新手) 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 84204
精华: 0
发帖: 23
金钱: 115 两
威望: 23 点
综合积分: 46 分
注册时间: 2012-12-18
最后登录: 2013-02-06
楼主  发表于: 2012-12-31 21:45

 关于裸机速度问题(我是新手)

我的tiny210跑裸机教程里的leds_c_sp
#define     GPJ2CON     (*(volatile unsigned long *) 0xE0200280)
#define     GPJ2DAT        (*(volatile unsigned long *) 0xE0200284)

void delay(int r0)                    // 延时
{
    volatile int count = r0;
    while (count--)
        ;
}

void led_blink()                    // LED闪烁
{
    GPJ2CON = 0x00001111;            // 配置引脚
    while(1)                            
    {
        GPJ2DAT = 0;                // LED on
        delay(0x100000);
        GPJ2DAT = 0xf;                // LED off
        delay(0x100000);
    }
}
这个延迟以1g的主频应该闪的让我看不清才对吧 为什么这么慢
级别: 新手上路
UID: 88678
精华: 0
发帖: 23
金钱: 120 两
威望: 24 点
综合积分: 46 分
注册时间: 2013-03-13
最后登录: 2013-11-12
1楼  发表于: 2013-03-25 23:49
首先,该程序的汇编程给r0寄存器赋了一个值,以该值作为延时的计数值,可以类比51的计数方法,得到延时时间,具体怎样没去算过