|
最近根据周立功的深入浅出arm7上学习arm,发现在仿真按键时出现了一个问题,判断按键是否按下时书中介绍是用语句if(IO0PIN&KEY1==0)来进行判断,实际仿真结果不行,后来经过反复修改发现if(IO0PIN&0x100)是可以正常运行,不知道什么原因,请各位大侠赐教,原代码如下
#include "config.h"
#define KEY1 (1<<8)
void DelayNS(uint32 dly)
{ uint32 i;
for(;dly>0;dly--)
for(i=0;i<50000;i++);
}
const uint32 LED_TBL[]={0x00,0xFF,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,
0x01,0x03,0x07,0x0F,0x1F,0x3F,0x7F,0xFF,
0xFF,0x7F,0x3F,0x1F,0x0F,0x07,0x03,0x01,
0x81,0x42,0x24,0x18,0x18,0x24,0x42,0x81,
0x81,0xC3,0xE7,0xFF,0xFF,0xE7,0xC3,0x81};
int main (void)
{
uint8 i;
PINSEL0=0x00000000;
IO0DIR =0x000000FF;
while(1)
{
if(IO0PIN&0x100) //注意此处IO0PIN&0x100==1或者==0则跑马灯不会亮
{
for(i=0;i<42;i++)
{
IO0SET=~LED_TBL;
DelayNS(10);
IO0CLR=LED_TBL;
DelayNS(10);
if(!(IO0PIN&0x100))break;
}
}
}
return 0;
}
点击此处下载 ourdev_493481.rar(文件大小:135K) (原文件名:key.rar) ,附件已可正常运行 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|