Skoffytd
|
|
1 | |
Прошу совета в освоении АВР27.04.2017, 00:00. Показов 3406. Ответов 15
Метки нет (Все метки)
Доброго времени суток форумчанам! Нахожусь в начале изучения контроллеров, пишу только пока в ассемблере, поэтому прошу совета. Техническое задание: имеется ультразвуковой дальномер для Ардуино типа HC-SR04, каждые 1,5-2 секунды инициализурую измерение импульсом 10мкс, для этого использую 8-ми битный Таймер0, ответный сигнал - эхо, имеет активный высокий уровень, а его длительность пропорциональна измеренному расстоянию и связана формулой: в 1 см расстояния - 58 мкс длительности импульса, диапазон расстояний от 2 до 400 см. Получается, что импульс эхо будет в диапазоне 116...23200 мкс. Тактирую от кварца 7,3728 МГц ("некрасивая" частота выбрана для UART), тактовый период 0,14 мкс. Подскажите как наиболее правильно считать длительность эхо +/- 20...30 мкс, пробовал по прерыванию INT1 c восходящим фронтом, но как определить, что синал окончился. По любому изменению на входе INT0, как тогда правильно понимать, что сейчас фронт, а не спад. Как лучше считать: циклом инкремента в процедуре или на такую мелочь занимать Таймер1? В дальнейшем из рассчитанное времени буду вычитать 58 и смотреть переход через 0, целое число вычитаний и будет расстояние в см, которое выведу на трёхразрядный светодиодный индикатор (с этим сложностей нет). Сейчас важно правильно научиться писать, используя оптимальные решения, не по-индусски)))
|
27.04.2017, 00:00 | |
Ответы с готовыми решениями:
15
В чем отличие таймера АВР от счетчика АВР? Проблема с Ардуино, прошу совета Прошу совета по схеме часов прошу совета по выбору МК Прошу совета по управлению ШД на STM32 |
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 155
|
|
27.04.2017, 00:06 | 2 |
таймером с захватом
0
|
Skoffytd
|
|
27.04.2017, 00:38 | 3 |
Таймер с захватом это уже 16 разрядный Timer1 (ещё ни разу его не настраивал - там функций и регистров - куча). Как тогда люди решают более сложные задачи, если таймеры так легко расходуются (сам использую ATTiny2313)? Для отладки более сложных проектов хочу использовать UART, как там без таймеров - нужно будет ещё почитать. Благодарю за столь скорый ответ)
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 886
|
|
27.04.2017, 00:58 | 4 |
0
|
Skoffytd
|
|
27.04.2017, 01:07 | 5 |
Сообщение от x893
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 3,113
|
|
27.04.2017, 03:01 | 6 |
Для измерения времени полезно завести 1 таймер в режиме счета, который бы только тикал и больше ничего. Далее, когда надо измерять время, просто считывать текущее значение этого таймера и вычитать предыдущее захваченное значение. Таймер должен тикать с такой частотой, с какой дискретностью надо получать измеренное время.
0
|
0 / 0 / 0
Регистрация: 10.04.2014
Сообщений: 879
|
|
27.04.2017, 08:43 | 7 |
Есть у меня измеритель уровня воды в летнем душе на этом датчике и на ATtiny2313A. Тактируется кварцем 12 МГц. Код на асме. Считаю таймером в режиме захвата. Всё чётко. Могу поделиться кодом, в личке
ЗЫ Кстати требования к запускающему импульсу совсем не строгие. Расходовать для этого таймер вовсе не обязательно
0
|
0 / 0 / 0
Регистрация: 10.06.2015
Сообщений: 1,304
|
|
27.04.2017, 09:12 | 8 |
Сообщение от Skoffytd
Поскольку зондирующий импульс вдвое-втрое короче допустимой погрешности, а счёт можно прекратить по фронту, то спад приходящего эха априори вам становится неинтересен. Спад вам мог бы быть интересен для цифровой или даже компьютерной обработки цели. Ну, ещё для фильтрации помех. Но это уже другая история.
Сообщение от u37
Но если сделать тики почаще, то появится возможность увеличить точность, т.к. ТС по сути сейчас будет сравнивать фронт зонда с фронтом эха. То есть "задел на будущее" есть, просто этот задел никому не нужен. И в будущем тоже.
0
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 155
|
|
27.04.2017, 11:31 | 9 |
Сообщение от Skoffytd
0
|
Skoffytd
|
|
27.04.2017, 12:49 | 10 |
Сообщение от u37
|
Skoffytd
|
|
27.04.2017, 13:11 | 11 |
Сообщение от Sthuthu
|
Skoffytd
|
|
27.04.2017, 13:27 | 12 |
Сообщение от VtodyMyti
Поскольку зондирующий импульс вдвое-втрое короче допустимой погрешности, а счёт можно прекратить по фронту, то спад приходящего эха априори вам становится неинтересен. Спад вам мог бы быть интересен для цифровой или даже компьютерной обработки цели. Ну, ещё для фильтрации помех. Но это уже другая история.
Сообщение от u37
Но если сделать тики почаще, то появится возможность увеличить точность, т.к. ТС по сути сейчас будет сравнивать фронт зонда с фронтом эха. То есть "задел на будущее" есть, просто этот задел никому не нужен. И в будущем тоже. Длительность эхо +/- 20...30 мкс - это я имел ввиду точность измерения импульса, т.е +/- 0,5 см по расстоянию, как изначально указал в первом сообщении, диапазон от 2 до 400 см определяет длинну ответного импульса (эхо) 112...23200 мкс, вот и думал, что нужно отслеживать, как фронт, так и спад импульса. В любом случае, благодарю за ответ, нужно сначала в авр студии поработать и посмотреть, что творится в счётных регистрах) |
Skoffytd
|
|
27.04.2017, 19:38 | 13 |
Сообщение от myshomy984
Просто режимов работы у таймера1 и всех нечётных - очень много, плюс ко всему давненько английский не использовал, часто сомневаюсь в своём переводе и гоняю гугл. А 32 битные контроллеры - это удел профи, которые только на си пишут, где сложные вычисления нужны и много обработки информации. По моим масштабам вполне хватает конечных автоматов на 8 битках, может попробую RTOS, от DY HOTT, но до этого нужно подрасти. Здесь недавно, но приятно удивила атмосфера форума: помогают, советуют) |
0 / 0 / 0
Регистрация: 11.07.2014
Сообщений: 116
|
|
27.04.2017, 20:36 | 14 |
почитайте Евстифеева "микроконтроллеры AVR семейства Miko"
0
|
Oxford
|
|
27.04.2017, 20:45 | 15 |
Реально ребята, почитайте книжки. Да и тут статей море. AVR архитектура простейшая.
|
0 / 0 / 0
Регистрация: 10.06.2015
Сообщений: 1,304
|
|
27.04.2017, 21:16 | 16 |
Сообщение от Skoffytd
2. ...вот и думал, что нужно отслеживать, как фронт, так и спад импульса.1. Это понятно. Я так и написал. 2. Нет, достаточно одного фронта, без спада. Если отслеживать ещё и спад, то помехозащищённость будет легко поднять "на порядок". Но оно вам, мне кажется, как собаке пятое колесо.
0
|
27.04.2017, 21:16 | |
27.04.2017, 21:16 | |
Помогаю со студенческими работами здесь
16
Прошу помощи в освоении C# Прошу совета Прошу совета Прошу совета Прошу совета Прошу совета! Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |