1.要注意设置可重复触发端口或者是不可重复触发端口。
2.要注意接入的电源大小是否符合要求。(如果电压不对会导致不能正常工作)
3.要注意延时的时间。
4.注意可以调节距离什么的。
下面是使用查询方式实现代码,主控芯片是s3c2440.
#define rGPFCON (*(volatile unsigned long *)0x56000050) //定义GPF控制器
#define rGPFDAT (*(volatile unsigned long *)0x56000054) //定义GPF数据寄存器
#define rGPGCON (*(volatile unsigned long *)0x56000060)
#define rGPGDAT (*(volatile unsigned long *)0x56000064)
//LED
#define GPF4_OUT (1<<(4*2)) //GPF第4位设置为输出
#define GPF5_OUT (1<<(5*2))
#define GPF6_OUT (1<<(6*2))
//Camera
#define GPG12_IN (0<<(12*2))
void delay_me(volatile unsigned long wait_time)
{
while(wait_time>0)
{
wait_time--;
}
}
void led_on()
{
rGPFDAT &= ~(1<<4);
rGPFDAT &= ~(1<<5);
rGPFDAT &= ~(1<<6);
}
void led_off()
{
rGPFDAT |= (1<<4);
rGPFDAT |= (1<<5);
rGPFDAT |= (1<<6);
}
int main()
{
volatile unsigned long tmp=0;
rGPFCON = GPF4_OUT|GPF5_OUT|GPF6_OUT;
rGPGCON = GPG12_IN;
rGPFDAT = 0xffff;
while(1)
{
tmp=rGPGDAT;
if((tmp&(1<<12)))
{
led_on();
delay_me(1000000);
}
else
{
led_off();
}
}
}