历史上的今天
返回首页

历史上的今天

今天是:2025年02月25日(星期二)

正在发生

2020年02月25日 | 基于MSP430F5529的超声波测距源码

2020-02-25 来源:eefocus

超声波的原理大家百度一下就应该知道了,因此基于MSP430的超声波主要是调整时钟就行了。


代码如下


#include "msp430f5529.h"

#include "usart.h"

#include "stdio.h"

 

double a = 1.111;       //距离

long long next;         //寄存器值

/*

 * P3.6与TB0.6相连接,输出信号

 */

int tim = 0;        //溢出次数

 

void SetVcoreUp (unsigned int level)

{

  PMMCTL0_H = PMMPW_H;

  SVSMHCTL = SVSHE + SVSHRVL0 * level + SVMHE + SVSMHRRL0 * level;

  SVSMLCTL = SVSLE + SVMLE + SVSMLRRL0 * level;

  while ((PMMIFG & SVSMLDLYIFG) == 0);

  PMMIFG &= ~(SVMLVLRIFG + SVMLIFG);

  PMMCTL0_L = PMMCOREV0 * level;

  if ((PMMIFG & SVMLIFG))

    while ((PMMIFG & SVMLVLRIFG) == 0);

  SVSMLCTL = SVSLE + SVSLRVL0 * level + SVMLE + SVSMLRRL0 * level;

  PMMCTL0_H = 0x00;

}

 

void set(void)

{

  volatile unsigned int i;

  WDTCTL = WDTPW+WDTHOLD;                   // Stop WDT

  P1DIR |= BIT1;                            // P1.1 output

  P1DIR |= BIT0;                            // ACLK set out to pins

  P1SEL |= BIT0;

  P2DIR |= BIT2;                            // SMCLK set out to pins

  P2SEL |= BIT2;

  P7DIR |= BIT7;                            // MCLK set out to pins

  P7SEL |= BIT7;

  // Increase Vcore setting to level3 to support fsystem=25MHz

  // NOTE: Change core voltage one level at a time..

  SetVcoreUp (0x01);

  SetVcoreUp (0x02);

  SetVcoreUp (0x03);

  UCSCTL3 = SELREF_2;                       // Set DCO FLL reference = REFO

  UCSCTL4 |= SELA_2;                        // Set ACLK = REFO

  __bis_SR_register(SCG0);                  // Disable the FLL control loop

  UCSCTL0 = 0x0000;                         // Set lowest possible DCOx, MODx

  UCSCTL1 = DCORSEL_7;                      // Select DCO range 50MHz operation

  UCSCTL2 = FLLD_0 + 762;                   // Set DCO Multiplier for 25MHz

  __bic_SR_register(SCG0);                  // Enable the FLL control loop

 

  __delay_cycles(782000);

  do

  {

    UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG);

                                            // Clear XT2,XT1,DCO fault flags

    SFRIFG1 &= ~OFIFG;                      // Clear fault flags

  }while (SFRIFG1&OFIFG);                   // Test oscillator fault flag

  P6DIR |= BIT0;

 

}

 

void main()

{

    set();

    WDTCTL = WDTPW+WDTHOLD;                   // Stop WDT

    UART_Init();                //串口初始化

 

    P3DIR |= BIT6;        

    P3OUT &=~ BIT6;     

 

    P3DIR &=~ BIT5;      

    P3IN &=~ BIT5;       

 

    P2DIR |= 0X00;   

    P2IFG = 0X00;  

    P2IE = BIT0;    

    P2IES = BIT0;  

    P2IN = BIT0;  

    P2OUT = BIT0;    

    P2REN = BIT0;   

 

    __enable_interrupt();     

 

    P1SEL |= BIT4;    

    P1DIR |= BIT4;    

    P1DS |= BIT4;   

    P1OUT &=~ BIT4;   

 

    while(1)

    {

        P3OUT = BIT6;  

        __delay_cycles(4);

        P3OUT &=~ BIT6;

        P2OUT &=~ BIT0;

        __delay_cycles(40000);

    }

}

 

 

#pragma vector=PORT2_VECTOR  

 

__interrupt void Port2_ISR(void)

{

 

    unsigned int temp;   

    if((P2IN&0X01)!=0X01)

    {

        temp=P2IFG;     

        P2IFG=0x00; 

        if(temp==0x01)

        {

            P2OUT = BIT0;  

            //开始计时

            TA0CCTL0 = CCIE;

            TA0CCR0 = 20000;

            TA0CTL = TASSEL_2 + MC_1 + TACLR;      

            __bis_SR_register(GIE);

            while((P3IN&0X20) == 0X20);

            //a + TA0R

            TA0CTL = MC0;

            //next = TA0R;

 

            printf("next = %ldn",TA0R);

 

        }

    }

}

 

#pragma vector = TIMER0_A0_VECTOR

__interrupt void TIMER0_A0_ISR(void)

{

    tim++;

    if(a>10)

    {

        tim = 0;

        P3OUT = BIT6;  

        __delay_cycles(4); 

        P3OUT &=~ BIT6;

    }

 

}

推荐阅读

史海拾趣

港源(GANGYUAN)公司的发展小趣事

机顶盒,全称为数字视频变换盒,是现代家庭娱乐中不可或缺的重要设备。从广义上讲,凡是与电视机连接的网络终端设备均可视为机顶盒,其功能已远不止于简单的信号转换。机顶盒不仅能够接收来自有线电缆、卫星天线、宽带网络及地面广播的数字电视信号,并将其转换为适合电视机播放的格式,还集成了众多增值服务,如电子节目指南、因特网网页浏览等。

在数字电视时代,机顶盒扮演了至关重要的角色。它不仅让用户能够在模拟电视上观看高清乃至4K的超高清电视节目,享受更为细腻的画面和震撼的音效,还赋予了电视机网络交互的能力。通过机顶盒,用户可以轻松接入互联网,进行在线购物、观看网络视频、玩游戏等多元化活动,使电视机从单向接收信息的设备转变为与用户互动的智能终端。

随着技术的不断进步,机顶盒的功能也在不断扩展。智能化技术的应用,如语音助手、智能推荐等,进一步提升了用户体验。同时,高清、超高清技术的普及,以及云计算、边缘计算等技术的结合,为机顶盒提供了更为高效的内容分发和管理能力。未来,随着5G、虚拟现实和增强现实等新技术的融入,机顶盒的娱乐、教育等应用将更加广泛,为用户带来更为沉浸式和互动式的观影体验。

综上所述,机顶盒作为连接电视与外部信号源及互联网的桥梁,正以其丰富的功能和不断升级的技术,为现代家庭娱乐生活带来前所未有的便捷与享受。

Good-Ark公司的发展小趣事
检查比较器的阈值设置是否正确,报警装置是否完好并能正常发声或发光。
Einfochips公司的发展小趣事

为了满足不断增长的ASIC和嵌入式服务需求,Einfochips公司决定在印度孟买附近的Pune设立一家新的设计中心。该设计中心将为亚洲和北美客户提供服务,主要涉及存储网络、无线通信和消费多媒体等领域。这一举措不仅加强了Einfochips在亚洲和北美市场的地位,还为其未来的发展奠定了坚实基础。

ERNI公司的发展小趣事

进入21世纪,ERNI继续深耕连接器技术。他们成功研发出世界上第一个DIN连接器,并随后发展了各种电路板连接器和输入/输出连接器。其中,2mm连接器成为ERNI的明星产品之一。凭借其优越的性能和可靠的品质,ERNI的2mm连接器在国内军工领域得到广泛应用,并赢得了广大客户的信赖和好评。

eLED.com Corp公司的发展小趣事

面对日益激烈的市场竞争和不断变化的市场需求,eLED.com Corp始终坚持以创新驱动为发展战略。公司不断加大研发投入,积极引进新技术、新材料和新工艺,推动产品的升级换代。同时,eLED.com Corp还积极探索新的应用领域和市场空间,如智能家居、智慧城市等领域。通过不断创新和产业升级,eLED.com Corp成功实现了从传统制造业向高新技术产业的转型。

Hitachi Metals公司的发展小趣事

随着汽车工业向智能化、电动化方向发展,Hitachi Metals敏锐地捕捉到了这一趋势带来的商机。公司加大了对汽车电子部件的研发和生产投入,特别是在汽车活塞环材料领域取得了显著成就。其生产的钢制活塞环材料在日本市场占据领先地位,不仅为众多汽车制造商提供了高质量的产品,还通过技术创新不断提升产品的附加值。此外,公司还积极拓展汽车电子控制单元(ECU)等关键部件的市场,进一步巩固了其在汽车电子领域的地位。

问答坊 | AI 解惑

LPC的板子的USB的线有什么特殊要求吗??

我用一根带阻抗匹配的线下载可以,我师兄拿去用了,我用MP4的线连接就没用 郁闷!…

查看全部问答>

急!!!eboot.bin文件怎么解压缩!!!

eboot.bin文件烧进系统以后,会自行压缩成eboot.nb0文件。我现在需要知道这个压缩的过程的代码是在哪个文件的哪个函数里的!有知道的吗??? 我找了F:\\WINCE500\\PUBLIC\\COMMON\\OAK\\DRIVERS\\ETHDBG\\BLCOMMON的BLCOMMON.c文件的DownloadImage函 ...…

查看全部问答>

WINCE驱动和WINDOWS驱动的关系???

想学WINCE的驱动,但书籍好少,于是我想先看WINDOWS的驱动,从这里入门,下面这三种那种更接近WINCE的驱动编程呢?区别又在那呢? 1)WIN9X虚拟设备驱动VxD 2)WIN NT驱动 3)WIN 2000 WDM驱动 …

查看全部问答>

89s52的的几个基础问题

1、89S52的波特率发生器是T2还是T1,还是两个都可以? 2、多机通信的时候SCON是设置成方式1还是方式3?(我要通过SM2来控制发送的是地址还是数据) 3、S52用KEIL在线仿真是接在COM口还是打印机口?…

查看全部问答>

实验室翻出来一个古董,求鉴定!

实验室最近翻出来一个古董级的CPLD(谢谢一楼~ 嘻嘻)~~ 大家帮我看看是干什么用的啊 最好能告诉我值多少钱~~~ 娃哈哈哈哈哈!   见图     对不起各位,手机拍的!! 效果差了点!! 但差不多都拍上了,请达人来 ...…

查看全部问答>

msp430

msp430的smclk是输出3.3V的方波吗?我怎么测得连500mv都不到啊?…

查看全部问答>

真正的地下车库

这个液压设备倒是猛的很…

查看全部问答>

关于热敏电阻测温精度问题

谁能告诉我热敏电阻测温精度能达到多高呢?谢谢啦…

查看全部问答>

zigbee串口分析

协议栈版本信息: ZigBee2006\\ZStack-1.4.3-1.2.1因为用现在这模块SerialApp没做成功,上电后按键没反应……两块无线龙小板子已经买来N年了. 自己想在SampleApp例子基础上修改实现串口透明传输:串口调试助手1模块1    模块2串 ...…

查看全部问答>