5543|1

2

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

求Tiva C TM4C1294单片机的超声波模块测距的代码 [复制链接]

超声波模块是ping)))的,但是HC-SR04也可以
这是我利用外部中断捕获上升沿和下降沿获得超声波测距的代码,但是并不能工作,求大神指点:
#include
#include
#include "inc/hw_ints.h"
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "driverlib/gpio.h"
#include "driverlib/interrupt.h"
#include "driverlib/pin_map.h"
#include "driverlib/sysctl.h"
#include "driverlib/uart.h"
#include "driverlib/systick.h"
#include "driverlib/timer.h"
#include "driverlib/pwm.h"


unsigned char led=1;
int flog=0;


uint32_t ui32SysClkFreq;
unsigned long pluse;




void GPIO_Port_B_ISR(void)
{
    GPIOIntClear(GPIO_PORTB_BASE, GPIO_PIN_2);
    if(flog==1){


    pluse=TimerValueGet(TIMER3_BASE, TIMER_B);


    flog=0;
}else if (flog==0){




    TimerConfigure(TIMER3_BASE, TIMER_CFG_SPLIT_PAIR | TIMER_CFG_B_CAP_TIME_UP);
    TimerLoadSet(TIMER3_BASE, TIMER_B, 0x8FFF);


    flog=1;
}
}






int main(void)
{


      ui32SysClkFreq=SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ |
              SYSCTL_OSC_MAIN |
               SYSCTL_USE_PLL |
               SYSCTL_CFG_VCO_480), 120000000);
        SysCtlClockSet(SYSCTL_SYSDIV_5|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHZ|SYSCTL_OSC_MAIN);


        SysCtlPeripheralEnable(SYSCTL_PERIPH_GPION);
        SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOJ);
        SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
        SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);
        SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER3);


        GPIOPinTypeGPIOOutput(GPIO_PORTB_BASE, GPIO_PIN_2);
        GPIOPinTypeGPIOOutput(GPIO_PORTN_BASE, GPIO_PIN_0|GPIO_PIN_1);
        GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_0|GPIO_PIN_1, 0);




        GPIODirModeSet(GPIO_PORTB_BASE, GPIO_PIN_2, GPIO_DIR_MODE_IN);      /*设置连接KEY的PE0为输入*/


        GPIOPadConfigSet(GPIO_PORTB_BASE, GPIO_PIN_2,              /* 设置KEY的驱动强度和类型 */
                     GPIO_STRENGTH_2MA,                       /*2mA的输出驱动强度*/
                     GPIO_PIN_TYPE_STD_WPU);          /*  设置LEY端口为弱上拉    */




    GPIOIntTypeSet(GPIO_PORTB_BASE, GPIO_PIN_2, GPIO_BOTH_EDGES);  /*设置KEY中断的触发方式为低电平触发 */


    GPIOIntRegister(GPIO_PORTB_BASE,GPIO_Port_B_ISR);
    GPIOIntEnable(GPIO_PORTB_BASE, GPIO_PIN_2);             /*  使能KEY中断         */
    IntEnable(INT_GPIOB);              /*  使能GPIO PE 口中断          */










    while (1)
        {
        GPIOPinWrite(GPIO_PORTB_BASE, GPIO_PIN_2,0);
        SysCtlDelay(100000);//2ms


        //GPIOPinTypeGPIOOutput(GPIO_PORTB_BASE, GPIO_PIN_2,1);
        GPIOPinWrite(GPIO_PORTB_BASE, GPIO_PIN_2,1);
        SysCtlDelay(250000);//5ms


        GPIOPinWrite(GPIO_PORTB_BASE, GPIO_PIN_2,0);








        /*
        PORTD=00000001;


        _delay_us(15);///triggering the sensor for 15usec


        PORTD =00000000;


        COUNTA = pulse/58;//getting the distance based on formula on introduction
      // GPIOPinWrite(GPIO_PORTF_BASE, LED1, LED1);                  //点亮LED1
    */


    }


}


此帖出自单片机论坛

最新回复

我是来消灭零回复的  详情 回复 发表于 2018-1-4 09:13
点赞 关注
 

回复
举报

8

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
我是来消灭零回复的
此帖出自单片机论坛
 
个人签名PCB
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表