Электроника средств транспорта Ремонт и разработка дополнительного автооборудования. Бортовые компьютеры и многое другое. |
03.07.2012, 13:47
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.06.2010
Сообщений: 1,223
Сказал спасибо: 13
Сказали Спасибо 176 раз(а) в 123 сообщении(ях)
|
Re: Самодельный круиз-контроль
Сообщение от Alex_Sss
|
gnomon72, Видимо, много вычислений производится в прерывании по ICP, а их нуна сократить до минимума.
|
Да минимум самый - может три-четыре десятков тактов. Для 20 МГц это вообще ничто, но попадание прерывания в момент вывода UART работающего на частоте 9600 Гц успевает сбить его нормальный вывод.
В прерывании по таймеру вообще одна команда - обнулить таймер после переполнения, да и она обрабатывается реже раза в секунду.
|
|
|
|
03.07.2012, 13:55
|
|
Временная регистрация
Регистрация: 18.11.2011
Сообщений: 98
Сказал спасибо: 1
Сказали Спасибо 11 раз(а) в 6 сообщении(ях)
|
Re: Самодельный круиз-контроль
Сообщение от gnomon72
|
но попадание прерывания в момент вывода UART работающего на частоте 9600 Гц успевает сбить его нормальный вывод.
|
А не здесь ли собака порылась?
|
|
|
|
03.07.2012, 13:57
|
|
Прописка
Регистрация: 03.06.2012
Сообщений: 159
Сказал спасибо: 8
Сказали Спасибо 10 раз(а) в 10 сообщении(ях)
|
Re: Самодельный круиз-контроль
Сообщение от gnomon72
|
Да минимум самый - может три-четыре десятков тактов. Для 20 МГц это вообще ничто, но попадание прерывания в момент вывода UART работающего на частоте 9600 Гц успевает сбить его нормальный вывод.
В прерывании по таймеру вообще одна команда - обнулить таймер после переполнения, да и она обрабатывается реже раза в секунду.
|
а уарт программный? Если так - может его замедлить до 4800...
А на аппаратный не хватает таймеров?
|
|
|
|
03.07.2012, 14:00
|
|
Гражданин KAZUS.RU
Регистрация: 08.07.2008
Адрес: Харьков, Украина
Сообщений: 523
Сказал спасибо: 32
Сказали Спасибо 106 раз(а) в 82 сообщении(ях)
|
Re: Самодельный круиз-контроль
Сообщение от gnomon72
|
Зависит только от попадания корявого импульса на момент после начала замера или на момент перед концом замера
|
у нас нет момента "после начала замера" или "перед концом замера". Ладно, я, как истинный хохол, пока не проверю - не поверю А поскольку в программировании я 0 - то щас пытаюсь понять как первым фронтом включить счетчик, а вторым его выключить и забрать данные в переменную. Вот на логике - тут всё просто. А в МК - не знаю. Пока не знаю. Разжуете - буду признателен
|
|
|
|
03.07.2012, 15:09
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.06.2010
Сообщений: 1,223
Сказал спасибо: 13
Сказали Спасибо 176 раз(а) в 123 сообщении(ях)
|
Re: Самодельный круиз-контроль
Сообщение от Andry_MA
|
А не здесь ли собака порылась?
|
Не, это на параллельной работе драйвера замера скорости с главным циклом. У вас всех таких прошивок нет - там последоватльно работает везде.
|
|
|
|
03.07.2012, 15:09
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.06.2010
Сообщений: 1,223
Сказал спасибо: 13
Сказали Спасибо 176 раз(а) в 123 сообщении(ях)
|
Re: Самодельный круиз-контроль
Сообщение от Alex_Sss
|
а уарт программный? Если так - может его замедлить до 4800...
А на аппаратный не хватает таймеров?
|
Аппаратный.
|
|
|
|
03.07.2012, 15:13
|
|
Прописка
Регистрация: 03.06.2012
Сообщений: 159
Сказал спасибо: 8
Сказали Спасибо 10 раз(а) в 10 сообщении(ях)
|
Re: Самодельный круиз-контроль
gnomon72, Странно. А что его таки сбивает?
|
|
|
|
03.07.2012, 15:13
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.06.2010
Сообщений: 1,223
Сказал спасибо: 13
Сказали Спасибо 176 раз(а) в 123 сообщении(ях)
|
Re: Самодельный круиз-контроль
Сообщение от cuper_1971
|
у нас нет момента "после начала замера" или "перед концом замера".
|
Точнее не момент, а время после начала замера. Когда то ведь мы начинаем фронты отлавливать.
Можем в любой момент начать и ждать когда фронт придет, а можем по прерыванию сразу попасть на факт прихода. Это неважно совершенно.
Если первый или последний фронт будет сдвинут в любую сторону, а следующий или предыдущий окажется на своем месте, то будет косяк по периоду в любом случае, как ни крути.
|
|
|
|
03.07.2012, 15:15
|
|
Прописка
Регистрация: 03.06.2012
Сообщений: 159
Сказал спасибо: 8
Сказали Спасибо 10 раз(а) в 10 сообщении(ях)
|
Re: Самодельный круиз-контроль
Сообщение от gnomon72
|
Если первый или последний фронт будет сдвинут в любую сторону, а следующий или предыдущий окажется на своем месте, то будет косяк по периоду в любом случае, как ни крути.
|
И поэтому - чем больше импульсов мы возьмем для замера - тем лучше и точнее!
|
|
|
|
03.07.2012, 15:18
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.06.2010
Сообщений: 1,223
Сказал спасибо: 13
Сказали Спасибо 176 раз(а) в 123 сообщении(ях)
|
Re: Самодельный круиз-контроль
Сообщение от Alex_Sss
|
gnomon72, Странно. А что его таки сбивает?
|
Да хрен его знает. Может загрузку в буфер UART, а может ещё что. Без понятия. Там целых четыре прерывания толкаются одновременно- 8-разрядный таймер 0, 16-разрядный таймер 1, ICP и UART. И ни в одном на время обработки нельзя отключать другие, т.к. пропуск любого из них критичен для разного рода процедур - или для временных задержек управления приводом и общим систиком или для опроса кнопок, или для замера скорости или для отправки данных на UART.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 01:01.
|
|