Здраствуйте ,решил ознакомится с датчиком HC-SR04 .Все подключил .Написал вот такую прошивку:
#define F_CPU 16000000UL //частота
#include <avr/io.h>
#include <util/delay.h>
#define LED 5 //пин светодиода
#define echo 0 //пин приема
#define trig 1 // пин передачи
int ee = 0;
void port_ini(void){// инициализация портов
DDRC|= (1<<LED); //светодиод
DDRC|= (1<<trig);
DDRC&=~ (1<<echo);
}
int longer(){
uint16_t duration ;//переменная для хранения значения с датчика
PORTC|=(1<<trig); // подаем импульс в 10 микросекунд
_delay_us(20);
PORTC&=~(1<<trig);
while(!(PORTC&(1<<echo))) ; // засекаем время
TCNT1|=0;
TCCR1B|=(1<<CS11);
while((PORTC&(1<<echo))) ;
duration =TCNT1; //присваем время перемнной
return((duration / 2) / 29.1); //высчитываем по формуле
}
int main(void)
{
port_ini();
while (1)
{ ee = longer();
if (ee>10){PORTC|=(1<<LED);}
if(ee<5){PORTC&=~(1<<LED);}
}
}
не работает .
Не понимаю в чем проблема . Подскажите пожалуйста в чем ошибка , если не трудно