主题 : 菜鸟请教myled问题 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 851
精华: 0
发帖: 21
金钱: 210 两
威望: 93 点
综合积分: 42 分
注册时间: 2008-06-11
最后登录: 2009-06-04
楼主  发表于: 2009-02-28 10:42

 菜鸟请教myled问题

光盘里自带的myled程序,运行后四个灯同时亮灭,还发出嘟嘟嘟的叫声,看了半天程序,不明白为什么会叫,下面是源程序,我把注释掉的去掉了,再以自己的理解加了点注释,希望懂的人指点一二,谢谢!
void __rt_lib_init(void);
void dely(U32 tt)
{
   U32 i;
   for(;tt>0;tt--)
   {
     for(i=0;i<10000;i++){}
   }
}
int Main(int argc, char **argv)
{
    int i;
    U8 key;
    U32 mpll_val=0;
    #if ADS10  
    __rt_lib_init(); //for ADS 1.0
    #endif
    
    i = 2 ;    //hzh, don't use 100M!
        //boot_params.cpu_clk.val = 3;
    switch ( i ) {
    case 0:    //200
        key = 12;
        mpll_val = (92<<12)|(4<<4)|(1);
        break;
    case 1:    //300
        key = 13;
        mpll_val = (67<<12)|(1<<4)|(1);
        break;
    case 2:    //400
        key = 14;
        mpll_val = (92<<12)|(1<<4)|(1);
        break;
    case 3:    //440!!!
        key = 14;
        mpll_val = (102<<12)|(1<<4)|(1);
        break;
    default:
        key = 14;
        mpll_val = (92<<12)|(1<<4)|(1);
        break;
    }
    
    //init FCLK=400M, so change MPLL first
    ChangeMPllValue((mpll_val>>12)&0xff, (mpll_val>>4)&0x3f, mpll_val&3);  //初始化MPLLCON
    ChangeClockDivider(key, 12);    //初始化CLKDIVN

    MMU_DisableICache();          //禁止使用ICache,DCache
    MMU_DisableDCache();

    Uart_Init(0,115200);                //初始化Uart
    Uart_Select(0);
    Uart_SendString("hello,qq2440\n");
    Uart_Printf("hello,qq2440, printf\n");

   rGPBCON = 0x00555555;            //初始化GPBCON和GPBDAT
   rGPBDAT = 0x0000;
   rGPBDAT = 0x0ffffff;
  
   while(1)    //使四个灯同时亮灭,并有一定的延时
   {
  
     rGPBDAT = 0x0000;
     dely(120);
     rGPBDAT = 0x0ffffff;
     dely(120);
   }
  
   return 0;
}

级别: 新手上路
UID: 851
精华: 0
发帖: 21
金钱: 210 两
威望: 93 点
综合积分: 42 分
注册时间: 2008-06-11
最后登录: 2009-06-04
1楼  发表于: 2009-02-28 13:58
似乎找到原因了,将rGPBDAT = 0x0ffffff;改为rGPBDAT = 0x0fffffe;就不叫了。是不是因为GPB0接着蜂鸣器的缘故?为1就叫为0就不叫?
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
2楼  发表于: 2009-02-28 14:12

 回 1楼(wuxinwuyou) 的帖子

这个看原理图不就清楚了?
"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."