Code: Select all
sbit ECHO at PORTA.B2;
sbit TR at PORTA.B3; //Declare bits
sbit LED at PORTA.B4;
unsigned int E_dist_us; //Distance variable
void main() {
INTCON = 0;
TRISA = 0x27;
TRISB = 0;
T1CON = 0;
PORTA = 0;
PORTB = 0;
E_dist_us = 0;
TMR1L = 0;
TMR1H = 0;
LED = 1;
delay_ms(100);
while(1){
TR = 1;
delay_us(100);
TR = 0;
while(ECHO == 0); //Wait for the ECHO pin go high
TMR1ON_bit = 1; //Start TIMER1
while(ECHO == 1); // Wait for the ECHO pin go low
TMR1ON_bit = 0; //Stop TIMER1
/*E_dist_us = (TMR1L + (TMR1H << 8));
E_dist_us = E_dist_us / 58.82; */
/*if(E_dist_us <= 10) {
LED = 0;
}
else {
LED = 1;
} */
PORTB = TMR1L;
delay_ms(1000);
TMR1L = 0; //Reset the count of the timer
TMR1H = 0;
}
}