Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2245919
  • 博文数量: 395
  • 博客积分: 10994
  • 博客等级: 上将
  • 技术积分: 5586
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-17 19:49
文章存档

2014年(1)

2013年(10)

2012年(74)

2011年(303)

2010年(7)

分类: 嵌入式

2010-12-22 21:09:53

今天终于写出了mini2440流水灯的裸机程序了,挺高兴的,可是发现当我也只能写出流水灯这样的程序,真是挺难得,呵呵,下面是代码和解析,一点一点进步吧。程序主体都没有变,还是要用到友善提供的三个启动代码,我主要是在main函数中修改了一下,变成我的主体程序
以下是main函数中的一部分:
#include "def.h"
#include "option.h"
#include "2440addr.h"    
#include "2440lib.h"
#include "2440slib.h"

void dely(U32 tt)

{

   U32 i;

   for(;tt>0;tt--)

   {

     for(i=0;i<10000;i++){}

   }

}

 

int Main(int argc, char **argv)

{

       U8 key;

       U32 mpll_val=0;

       int data;

 

       mpll_val = (92<<12)|(1<<4)|(1);

      

       //init FCLK=400M, so change MPLL first

       ChangeMPllValue((mpll_val>>12)&0xff, (mpll_val>>4)&0x3f, mpll_val&3);

       ChangeClockDivider(key, 12);   

 

       //ChangeClockDivider(1,1);    // 1:2:4    FCLK:HCLK:PCLK

    // rCLKDIVN=0x4;    //  1:4:4

    //ChangeMPllValue(82,2,1);     //FCLK=135.0Mhz    

       //ChangeMPllValue(82,1,1);     //FCLK=180.0Mhz    

    //ChangeMPllValue(161,3,1);    //FCLK=202.8Mhz

    //ChangeMPllValue(117,1,1);    //FCLK=250.0Mhz

    //ChangeMPllValue(122,1,1);    //FCLK=260.0Mhz

    //ChangeMPllValue(125,1,1);    //FCLK=266.0Mhz

    //ChangeMPllValue(127,1,1);    //FCLK=270.0Mhz 

   

    //MMU_EnableICache();

    //MMU_EnableDCache();

   

    MMU_DisableICache();

    MMU_DisableDCache();

 

 

    rGPBCON = 0x15400;

  

  

     while(1)

     {

           

            rGPBDAT = 0x1c0;//第一个灯亮

            dely(120);     //这个自带的延时函数,我也不知道延时多长时间

            rGPBDAT = 0x1b0; //亮第二个灯

            dely(120);

            rGPBDAT = 0x160;  //亮第三个灯

            dely(120);

            rGPBDAT = 0x0e0;  //亮第四个灯

            dely(120);

            //data =~data;

       }

  

   return 0;

}

阅读(3260) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:ads使用方法(arm9流水灯)-mini2440

给主人留下些什么吧!~~