请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
部件号:MSP430G2553 您好!
我正在尝试将两个超音速传感器连接到msp430g2553以捕获两个不同的距离
但两个传感器的距离都是一样的,即使有一个传感器在工作,请帮我这方面的忙。
这是我的代码
#include <MSP40.0>
volatile unsigned int sensor1_counter =0;
volatile unsigned int sensor1_dist_cm =0;
volatile unsigned int sensor2_counter =0;
//static sensor2_dist_cm =0;
//static unsigned int sensor3_counter;
//static unsigned int sensor3_dist_cm;
#pragma vector=Timer1_A0_vector
__interrupt void TimerA0 (void)
{
IF (TA1CCTL0 & CCI) //提升边缘
{
sensor1_counter = TA1CCR0;// 将计数器复制到变量
}
else //下降边缘
{//
公式:距离以cm为单位=(TCusec)/58 sensor1_TA1CCRdist_TA1=
~1;
~TA1= //清除中断标志-已处理
}
#pragma vector=Timer1_A1_vector
__interrupt void Timera1(void)
{
IF (TA1CCTL1 & CCI) //提升边缘
{
sensor2_counter = TA1CCR1;// 复制计数器到变量
}
else //下降边缘
{//
公式:距离cm =(usec中的时间)/58cm
sensordist=}/r1_sensordist_1_2
TA1CCTL1 &=~CCIFG;
TA1CTL &=~TAIFG;
}
int main(void){
WDTCTL = WDTPW | WDTHOLD; //停止看门狗计时器
/*将WFP 1.4 设置为输出方向(触发器)*/
P1DIR || BIT4 + BIT5;
P1OUT &=~BIT4 +~BIT5;
P2DIR &=~BITS0 +~BIIT2;
P2SEL |= BITS0 + BIIT2;
P2SEL2 &=~BITS0 +~BIIT2;
TA1CCTL0 = CM_3 + SCS + CCIS_0 + CAP + CCIE;//WFP 2.0
TA1CCTL1 = CM_3 + SCS + CCIS_1 2.2 ;CCCIE
+ CCIS_3 //WFP 2.4 (CCIS_0)
TA1CTL = tassel_2 + MC_2 + ID_0;
//全局中断启用
_BIS_SR(GIE);
while (1){
P1OUT ^= BIT4 + BIT5; //断言
__DELAY _CYCLES (10); // 10us Wide
P1OUT ^= BIT4 + BIT5; //断言
__DELAY _CYCLES (6万); // 60ms measurement
}
