注册 登录
查看: 233|回复: 0

[K60] 求救~超声波

[复制链接]
发表于 2017-8-5 16:25:05 | 显示全部楼层 |阅读模式
用HY-SRF05时,采集到的都是1怎么回事。
我代码按照时序图写的,而且也有正常的进入中断。
void PORTC_IRQHandler()
{
        PORTC_ISFR|= 0xFFFFFFFFu;   //清除标志位     
      if(PTC19_IN == 1)//检测到IO口是高电平,那么就是上升沿
      {//如果是上升沿中断
        pit_time_start (PIT2); //开始计时
      }
      else
      {
        distance=pit_time_get_us (PIT2);
        pit_time_close(PIT2);
      }     
}

void PIT0_IRQHandler(void)
{
   
      gpio_set (PTC10,1);
      DELAY_US(20);
      gpio_set (PTC10,0);
      
    PIT_Flag_Clear(PIT0);       //清中断标志位
}


void main()
{
    pit_init_ms(PIT0, 60);
    set_vector_handler(PIT0_VECTORn ,PIT0_IRQHandler);      //设置PIT1的中断复位函数为 PIT1_IRQHandler
    enable_irq (PIT0_IRQn);                                 //使能PIT1中断                              


    gpio_init(PTC10,GPO,0);
    gpio_init(PTC19,GPI,0);
    /*触发脉冲*/
    gpio_set (PTC10,1);
    DELAY_US(20);
    gpio_set (PTC10,0);


    port_init(PTC19, ALT1 | IRQ_EITHER );                    //跳变沿触发
    set_vector_handler(PORTC_VECTORn ,PORTC_IRQHandler);    //设置PORTE的中断服务函数为 PORTE_IRQHandler
    enable_irq (PORTC_IRQn);
    set_irq_priority(PORTC_IRQn,0);// 最高优先级
    set_irq_priority(PIT0_IRQn,1);     
    while(1)
   {
     LCD_Write_6x8Int(0,3,distance);
   }

}
回复

使用道具 举报

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

本版积分规则

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