3个管脚的HC-SR501的使用。

来源:互联网 发布:vb二级考试题库 编辑:程序博客网 时间:2024/05/16 19:26

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();
      }
     }
}

0 0
原创粉丝点击