打印
[ARM9、LPC]

程序烧进去后,led灯不亮?

[复制链接]
1151|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zfyfll|  楼主 | 2013-10-18 19:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
***************************************************
     按键点亮LED
//***************************************************
//功能:流水灯,蜂鸣器的响停
//接口:GPF4 -> LED1    GPF0 -> KEY1
//            GPF5 -> LED2    GPF1 -> KEY2
//            GPF6 -> LED3    GPF2 -> KEY3  
//            GPF7 -> LED4    GPF3 -> KEY4
#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)       //主函数
{
                  //这里只讨论按键与IO口的使用,其余的做成子函数,直接调用,可暂时不深究。
        U8 key;
        U32 mpll_val=0;
  
        mpll_val = (92<<12)|(1<<4)|(1);
       
        ChangeMPllValue((mpll_val>>12)&0xff, (mpll_val>>4)&0x3f, mpll_val&3);   //设置主时钟频率405MHZ
        ChangeClockDivider(key, 12);      //设置时钟驱动频率的函数   
   
    MMU_DisableICache();    //对内存管理单元MMU的设置
    MMU_DisableDCache();
                                                
    rGPBCON &=~12;    //设置为输出
    rGPBCON |=8;
   
    while(1)     
           {   
               unsigned long dqdat;   
                   dqdat=rGPFDAT;   //读取GPGDAT管脚电平状态。
                  
                      //采取位判断,判断是0还是1.
                   if(dqdat & (1<<0))   //判断按键1是否按下
                     rGPFDAT = (0x0f<<4);    //灯全灭
                   else   
                     rGPFDAT = (0x0e<<4);    //00001110左移5位,LED1亮
                     
                   if(dqdat & (1<<1))   //判断按键2是否按下
                     rGPFDAT = (0x0f<<4);     //灯全灭
                   else
                     rGPFDAT = (0x0d<<4);    //00001101左移5位,LED2亮
  
                  
                   if(dqdat & (1<<2))   //判断按键3是否按下
                     rGPFDAT = (0x0f<<4);    //灯全灭
                   else
          rGPFDAT = (0x0b<<4);    //00001011左移5位,LED3亮
                     
                   if(dqdat & (1<<3))   //判断按键4是否按下
                     rGPFDAT = (0x0f<<4);    //灯全灭
                   else  
                 rGPFDAT = (0x07<<4);    //00000111左移5位,LED4亮       
                     
        }       
}

相关帖子

沙发
阿南| | 2013-10-18 23:04 | 只看该作者
在线调试能亮否?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

19

帖子

0

粉丝