Witam serdecznie wszystkich, jestem stosunkowo nowy w dziedzinie mikrokontrolerów, ale postaram się przybliżyć problem najprościej jak się da. Sama idea jest taka, aby wykorzystać Sonar HC-SR04 od Arduino i przy pomocy atmegi16 wyliczyć odległość i wyświetlić to na ekranie. Jest użyty kwarc 16MHz i fusebity poprawnie ustawione. Problem polega na tym, że nie jestem w stanie uzyskać przerwania dokładnie co 1uS aby dzięki temu móc wyliczyć odległość. Przerwanie timera uzyskuję poprzez podanie przez sonar sygnału na INT1. Inkrementuje się zmienna 'duration' i gdy nastąpi koniec przerwania ma być ona wyświetlona na ekranie. Problem w tym że nie jest ona liczona w uS. Przeszabrowałem internet w poszukiwaniu informacji na temat opóźnienia timerów, dodatkowe cykle poświęcone na realizację przerwań itd. Moja wiedza niestety jest jeszcze zbyt mała w tej dziedzinie. Prosiłbym o pomoc jak mogę rozwiązać mój problem w najprostszy możliwy sposób.
Code: c