智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2524|回复: 4
打印 上一主题 下一主题

[基础知识] 鸳鸯超声波测距问题

[复制链接]

8

主题

83

帖子

0

精华

高级会员

Rank: 4

积分
622
威望
314
贡献
200
兑换币
203
注册时间
2017-1-31
在线时间
54 小时
毕业学校
皖西学院
跳转到指定楼层
1#
发表于 2017-4-12 14:11:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
小白使用山外核心板,结果鸳鸯超声波就是不会用,用例程改都不行,求老司机带带路
回复

使用道具 举报

3

主题

26

帖子

0

精华

高级会员

Rank: 4

积分
505
威望
263
贡献
140
兑换币
169
注册时间
2017-2-19
在线时间
51 小时
毕业学校
哈尔滨佛学院、
2#
发表于 2017-4-13 00:50:16 | 只看该作者
/**
  * @BRIEF         PIT3³õʼ»¯
  * @param  ÎÞ
  * @retval ÎÞ
  */
static void PIT3_DIS_Init(void)
{
        //³õʼ»¯Ê±ÖÓ
        SIM->SCGC6|=SIM_SCGC6_PIT_MASK;
        //¿ªÆôÄ£¿éʱÖÓ
    PIT->MCR&=~PIT_MCR_MDIS_MASK;
        PIT->MCR &= ~PIT_MCR_FRZ_MASK;
        //¼ÆÊýÆ÷³õʼֵ¸ø×î´ó
    (PIT->CHANNEL[3].LDVAL)=0xFFFFFFFF;   
        //¶¨Ê±Æ÷ÖÜÆÚ½áÊøʱÖÃÒ»Ö»ÓÐд1ʱÇåÁã
    (PIT->CHANNEL[3].TFLG)|=PIT_TFLG_TIF_MASK;

        PIT->CHANNEL[3].TCTRL|=PIT_TCTRL_TIE_MASK;

}
/**
  * @brief         Ô§Ñì²â¾àÄ£¿éÒý½Å³õʼ»¯
  * @param  ÎÞ
  * @retval ÎÞ
  */
static void  GPIO_DIS_Init(void)
{
        /*PC0*/
        GPIO_InitTypeDef GPIO_InitStructure;
        //ÉÏÀ­
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD;
        GPIO_InitStructure.GPIO_MUX=Mode1;
        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;
        //ÉÏÉýÑØ´¥·¢ÍⲿÖжÏ
        GPIO_InitStructure.EXTI_Trigger=EXTI_Trigger_Rising_Falling;
        GPIO_Init(PTC,&GPIO_InitStructure);
}

/**
  * @brief  PIT3ÖжÏÓÅÏȼ¶ÅäÖÃ
  * @param  ÎÞ
  * @retval ÎÞ
  */
void PIT3_NVIC_Configuration(void)
{
       
        NVIC_InitTypeDef NVIC_InitStructure;
        //ÖжÏÓÅÏȼ¶·Ö×é
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);  
        //ÖжÏÔ´£ºTIM3
        NVIC_InitStructure.NVIC_IRQChannel=PIT3_IRQn ;
        /*Õâ¸öÓÅÏȼ¶±ØÐë×î¸ß*/
        //ÇÀÕ¼ÓÅÏȼ¶0
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;
        //ÏìÓ¦ÓÅÏȼ¶0
        NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;
        //ʹÄÜ
        NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE ;
        //³õʼ»¯½á¹¹Ìå
        NVIC_Init(&NVIC_InitStructure);       

}

/**
  * @brief  Ô§Ñì²â¾à³õʼ»¯
  * @param  ÎÞ
  * @retval ÎÞ
  */
void Distance_Init(void)
{
        GPIO_DIS_Init();
        PIT3_DIS_Init();
        PIT3_NVIC_Configuration();
}




中断
//ABÁ¾³µ
uint16_t ABDistance=0;
uint16_t Old_ABDistance=0;
void PORTC_IRQHandler(void)           
{                
        //³¬Éù²¨¼Æʱʱ¼ä
        float  chaoshengboTime=0;
        //È·±£ÊÇ·ñ²úÉúÁËORTC11 ¼´³¡ÖжÏVSYNCµÄÖжÏ
        if(EXTI_GetFlagStatus(PORTC,GPIO_Pin_11) == SET)     
        {               
                //Çå³ýÖжϱê־λ
                EXTI_ClearFlag(PORTC,GPIO_Pin_11);  
                //¿ªÆôDMA´«Êä   ÔÚÓ²¼þDMAÇëÇó¸Ãλ±ØÐëÖÃ1
                DMA0->ERQ |= DMA_ERQ_ERQ0_MASK;       
               
        }               
                //ÓÃÓÚÔ§Ñì²â¾àʹÓÃ
        if(EXTI_GetFlagStatus(PORTC,GPIO_Pin_0) == SET)
        {
               
                //Çå³ýÖжϱê־λ
                EXTI_ClearFlag(PORTC,GPIO_Pin_0);
                //¸ßµçƽ               
                if((PTC->PDIR & (0x01<<GPIO_Pin_0)))
                {
                        //Í£Ö¹¶¨Ê±Æ÷
                        (PIT->CHANNEL[3].TCTRL)&=~PIT_TCTRL_TEN_MASK;
                        //32λ¶¨Ê±Æ÷£¬×°×î´óµÄÊý
                        (PIT->CHANNEL[3].LDVAL)=0xFFFFFFFF;
                        //Æô¶¯¶¨Ê±Æ÷
                        (PIT->CHANNEL[3].TCTRL)|=PIT_TCTRL_TEN_MASK;
                }
                //µÍµçƽ
                else
                {
                        //50M×ÜÏßʱÖÓ£¬¼ÆËãµÃµ½Ê±¼ä£¬µ¥Î»Î¢Ãë
                        chaoshengboTime = (0xFFFFFFFF - (PIT->CHANNEL[3].CVAL))/50;
                        /*Æäʵ²»ÓüÆËã*/
                        //Ò»ÃëÖÓµÄÉùÒôËÙ¶ÈÉèΪ340Ã×£¬ÓÉÓÚchaoshengboTimeµ¥Î»ÊÇ΢Ãî,/1000ºóµ¥Î»ÊÇmm
                        ABDistance = chaoshengboTime * 340/1000;
                        if(ABDistance>=2500)
                        {
                                ABDistance=Old_ABDistance;
                        }
                        Old_ABDistance=ABDistance;
//                        if(ABDistance<2000)
//                        {
//                                ABDistance=(Old_ABDistance*5+ABDistance)/6;
//                        }
//                        else if(ABDistance>=2000)
//                        {
//                                ABDistance=2000;
//                        }
//                        Old_ABDistance=ABDistance;
                        //Í£Ö¹¶¨Ê±Æ÷
                        (PIT->CHANNEL[3].TCTRL)&=~PIT_TCTRL_TEN_MASK;
                }
        }
}
回复 支持 反对

使用道具 举报

8

主题

83

帖子

0

精华

高级会员

Rank: 4

积分
622
威望
314
贡献
200
兑换币
203
注册时间
2017-1-31
在线时间
54 小时
毕业学校
皖西学院
3#
 楼主| 发表于 2017-4-16 16:28:18 | 只看该作者
wx_Y0HN7e7h 发表于 2017-4-13 00:50
/**
  * @BRIEF         PIT3&sup3;&otilde;&Ecirc;&frac14;&raquo;&macr;
  * @param  &Icirc;&THORN;

这能用?
回复 支持 反对

使用道具 举报

3

主题

26

帖子

0

精华

高级会员

Rank: 4

积分
505
威望
263
贡献
140
兑换币
169
注册时间
2017-2-19
在线时间
51 小时
毕业学校
哈尔滨佛学院、
4#
发表于 2017-4-16 18:17:11 | 只看该作者
嗯呐


回复 支持 反对

使用道具 举报

8

主题

83

帖子

0

精华

高级会员

Rank: 4

积分
622
威望
314
贡献
200
兑换币
203
注册时间
2017-1-31
在线时间
54 小时
毕业学校
皖西学院
5#
 楼主| 发表于 2017-4-16 21:01:07 | 只看该作者
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-27 20:28 , Processed in 0.048411 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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