电赛练习
说明
-
单片机产生信号在P1.6引脚
-
单片机输入信号在P2.5引脚
-
如果直接测量外部信号,直接连接P2.5,不用管P1.6
-
在变量窗口创建并查看freq的值即可
代码
该代码可以直接在CCS上进行编译运行
142-160行是单片机产生信号
// An highlighte`
#include <msp430.h>
#include "stdint.h"
#include <stdio.h>
uint32_t timestamp = 0;//时间戳
uint16_t capvalue_1 = 0;//第一次捕捉值
uint16_t capvalue_2 = 0;//第二次捕捉值
uint32_t timestamp_1 = 0;//第一次时间戳
uint32_t timestamp_2 = 0;//第二次时间戳
uint32_t totaltime = 0;
float freq = 0;
/*
* @fn: void InitSystemClock(void)
* @brief: 初始化系统时钟
* @para: none
* @return: none
* @comment:初始化系统时钟
*/
void InitSystemClock(void)
{
/*配置DCO为1MHz*/
DCOCTL = CALDCO_1MHZ;
BCSCTL1 = CALBC1_1MHZ;
/*配置SMCLK的时钟源为DCO*/
BCSCTL2 &= ~SELS;
/*SMCLK的分频系数置为1*/
BCSCTL2 &= ~(DIVS0 | DIVS1);
}
/*
* @fn: void InitUART(void)
* @brief: 初始化串口,包括设置波特率,数据位,校验位等
* @para: none
* @return: none
* @comment:初始化串口
*/
void InitUART(void)
{
/*复位USCI_Ax*/
UCA0CTL1 |= UCSWRST;
/*选择USCI_Ax为UART模式*/
UCA0CTL0 &= ~UCSYNC;
/*配置UART时钟源为SMCLK*/
UCA0CTL1 |= UCSSEL1;
/*配置波特率为9600@1MHz*/
UCA0BR0 = 0x68;
UCA0BR1 =