Quantcast
Channel: MSP430 Technical Forums
Viewing all articles
Browse latest Browse all 2077

msp430 error with capture in P1.5

$
0
0

hello everyone, I use P1.5 (timer 0.0) in msp430 launchpad with msp430g2553  for capture mode. but it seems wrong somewhere. it does not work. can anyone show me why it does not work correctly

#include <msp430g2553.h>
#include "uart.h"
#define	trigger		BIT4;
#define	 echo		BIT5;

void timer_init(void);
void do_khoang_cach(void);

unsigned int t1=0, t2=0, delta=0, first_pulse=0;


void main(void)
{
	WDTCTL = WDTPW | WDTHOLD;
	BCSCTL1 = CALBC1_1MHZ;
	DCOCTL =  CALDCO_1MHZ;

	P1DIR |= trigger;		
	P1SEL |= echo;			

	uart_init();
	timer_init();
	_BIS_SR(GIE);			

	while (1)
	{
		do_khoang_cach();
		__delay_cycles(30000);		
	}
}


void timer_init(void){
	TA0CTL = TASSEL_2 + MC_2 ;		
	TA0CCTL0 = CM_3 + CAP + CCIS_0 + SCS+ CCIE;		// falling edge & raising edge, capture mode, capture/compare interrupt enable
	TA0CCTL0 &= ~ CCIFG;
}

void do_khoang_cach(void){

	P1OUT |= trigger;
	__delay_cycles(20);
	P1OUT &= ~trigger;
}



#pragma vector = TIMER0_A0_VECTOR
__interrupt void timer0(void){

	if (P1IN & BIT5 ==1 )
		t1 = TA0CCR0;

	else {
		t2 = TA0CCR0;
		if (t2 > t1){
			delta = (t2-t1)/58;
			uart_put_num(delta,0,0);
			uart_puts("\r\n");
		}

		}

	TA0CCTL0 &= ~ CCIFG;
}





Viewing all articles
Browse latest Browse all 2077

Trending Articles