Почему УЗ датчик расстояния HC-SR04 не дружит с ATTiny13?
Делал устройство, в котором необходимо обрабатывать данные с датчика расстояния HC-SR04. Сделал на ATmega16, но в процессе работы стало ясно, что нужен отдельный микроконтроллер под датчик, чтобы основная программа в атмеге не прерывалась на время запроса.
Суть работы с датчиком - подать на одну ногу сигнал, с другой дождаться высокого уровня, и подсчитать его длительность. Пробовал и прерываниями, и программно, на атмегах работает хорошо, на Attiny13 - нет.
Возможно я что-то упускаю в силу недостаточного опыта. Может попробовать на Attiny2313?
Нет, прошивку писал с нуля под тини, общий только алгоритм. Почему-то она не ловит прерывания с ноги Echo, программно тоже не работает. Код простой - в цикле ждем пока уровень не изменится с 0 на 1, опять же в цикле считаем время пока он высокий, потом обрабатываем полученное значение.
Смотрел исходники библиотеки для этого датчика под ардуино, там длительность считается функцией pulseIn. Я посмотрел ее код, алгоритм работы такой же, как у меня.
stiger19: может длина строба не верна из-за изменившейся частоты? Нога точна настроена на вход? Попробуйте поменять ногу. Можно отлаживать через UART и смотреть где происходит фэйл. Без кода сложно сказать.