找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3200|回复: 0
打印 上一主题 下一主题
收起左侧

请教高手

[复制链接]
跳转到指定楼层
楼主
ID:48700 发表于 2013-3-16 11:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一个简单的ARM指令,却实现不了如下功能:按下键(p0.20),实现led灯闪三下,松开键,灯灭,采用查询方式,不采用中断方式,代码如下:

********************************************************************************************************/
#include "config.h"

#define ledcon  (0xfu<<28)
#define beepcon (0x1<<7)
#define keycon  (0x1<<20)

///////////////////////////////////////////////////////////
void delay(uint32 delaytime)
{
uint32 i;
for (;delaytime>0;delaytime--)
    {for(i=5000;i>0;i--);}
}

///////////////////////////////////////////////////////////
void ledon()
{
    IO2SET=ledcon;
    delay(10);
}

//////////////////////////////////////////////////////////
void ledoff()
{
    IO2CLR=ledcon;
    delay(10);
}

///////////////////////////////////////////////////////////
void beepon()
{
    IO0SET=beepcon;
    delay(10);
}

///////////////////////////////////////////////////////////
void beepoff()
{
    IO0CLR=beepcon;
    delay(10);
}

//////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////
int main (void)
{
uint8 nCount;

//P0.20 GPIO
PINSEL1=PINSEL1 & 0xfffffcff;

while (1)
{
    if ((IO0PIN & keycon)!=0)
    {
      for(nCount=3;nCount>0;nCount--)
      {
        ledon();
        //ledoff();     //如果允许执行此语句,则开机一复位灯就一直亮,如果屏蔽此语句,则按下键灯亮,松键灯灭,不知是何原因,请高手指点?
      }
    }
    else
    {
       ledoff();
   }
   
}

    return 0;
}


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表