Professional Documents
Culture Documents
h>
/*
* main.c
*/
int main(void) {
WDTCTL = WDTPW | WDTHOLD;
IE1 |= WDTIE;
config_P1();
config_clock();
config_P2();
TA0CCR0=59999;
TA0CCTL1= OUTMOD_7;// RESET SET
TA0CTL= TASSEL1 + ID0 + MC0;// SMCLK/2 = 1MHZ ///MC0 CONTA AT TA0CCR0
TA0CCR1=9;
_BIS_SR(GIE);
while(1);
}
void config_clock(void)
{
WDTCTL = WDTPW | WDTHOLD;
void config_P1(void)
{
P1DIR|=BIT6 + BIT0;
P1OUT &=~BIT0;
void config_P2(void){
P2REN =BIT0;
P2OUT =BIT0;
P2DIR &=~BIT0;
P2SEL= BIT0;//ENTRADA ECHO
#pragma vector=PORT1_VECTOR
__interrupt void P1_RTI(void){
#pragma vector=WDT_VECTOR
__interrupt void WDT_RTI(void){
TA0CCR1=10;
}
}
P1IFG&=~BIT3;
P1IE = BIT3;
}
#pragma vector=TIMER1_A0_VECTOR
__interrupt void Timer1(void){
if(x==0){
x=1;
}else{
x=0;
if((TA1CCR0 - tempo_inicial) > 0){
}else{
tempo=(65535 - tempo_inicial)+ TA1CCR0;
}
tempo_real = 0.000001*tempo;//tempo em segundo do sinal em alta
P1DIR|=BIT0;
P1OUT|=BIT0;
}else{
P1OUT^=BIT0;
}
}