单片机教程网

电脑版
提示:原网页已由神马搜索转码, 内容由www.51hei.com提供.
查看: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;
}


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

Powered by 单片机教程网