AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
05.08.2016, 12:50
|
|
Гражданин KAZUS.RU
Регистрация: 15.08.2010
Адрес: Днепр
Сообщений: 842
Сказал спасибо: 74
Сказали Спасибо 199 раз(а) в 174 сообщении(ях)
|
Re: Спидометр атмега 8
Сообщение от Alex9797
|
Таким способом мы всегда получим точность вычислений в заданных пределах, и минимальную погрешность, так как мы всегда имеем дело с целым количеством импульсов датчика.
|
Так много ухищрений...
Частота тактирования 8000000гц. Если выбрать делитель счетчика 128, то
частота тактирования счетчика = 7812,5
длительность такта счетчика =0,000128сек
скорость 300 км/ч это =83,(3) м/сек
количество импульсов =500
длительность между импульсов =0,002сек
количество импульсов в счетчике
после захвата =15
Если не задерживаться в прерывании больше, чем на 100 тактов то мы не потеряем ни одного импульса. Если же все-таки потеряем, то 1 от 15 - это всего 6,7% погрешность на скорости 300 км/ч. (может есть любители ездить на такой скорости)
Но, думаю, копирование в буфер, обнуление и декремент займет меньше 100 тактов.
Если же нужно гарантировано, вообще без погрешности, то можно использовать часть алгоритма от Alex9797.
по захвату считали в буфер и поставили таймер в ожидание. по фронту запустили, по следующему считали и так далее. Но, если не выходить за лимит в 100 тактов процессора, это будет лишнее.
Цитата:
|
Да. А где я писал "двухбайтная переменная"?
|
Цитата:
|
Здесь алгоритм может быть такой.
В прерывании, значение счётчика таймера прибавляется к аккумулятору (4-байтовая переменная в памяти),
|
Зачем использовать аккумулятор в прерывании, когда можно просто считать в 2-байтный буфер и в главном цикле прибавить его к аккумулятору?
Последний раз редактировалось МВА; 05.08.2016 в 12:57.
|
|
|
|
05.08.2016, 12:56
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,565
Сказал спасибо: 5,041
Сказали Спасибо 10,612 раз(а) в 3,604 сообщении(ях)
|
Re: Спидометр атмега 8
Сообщение от МВА
|
Так много ухищрений...
|
Где их много? Разделить одно число на другое - это много? Просто описал алгоритм максимально подробно, чтобы даже у Мишутки вопросов не возникло.
А в программе, даже на асме - это всего несколько строчек текста. Зато гарантирована точность, без всяких оговорок. И заодно усреднение значения, чтобы показания были устойчивы.
|
|
|
Сказали "Спасибо" Alex9797
|
|
|
05.08.2016, 13:13
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.10.2007
Сообщений: 2,760
Сказал спасибо: 1,105
Сказали Спасибо 1,037 раз(а) в 569 сообщении(ях)
|
Re: Спидометр атмега 8
Сообщение от МВА
|
Зачем использовать аккумулятор в прерывании
|
Речь шла об "основная программа не успевает обработать прерывание".
Ну тогда пусть в прерывании накапливается в аккумулятор и счётчик, сколько раз накапливалось.
Ещё есть любители запрещать прерывания... а флажок висит, а счётчик считает. И отработает прерывание потом...
|
|
|
|
05.08.2016, 13:16
|
|
Гражданин KAZUS.RU
Регистрация: 15.08.2010
Адрес: Днепр
Сообщений: 842
Сказал спасибо: 74
Сказали Спасибо 199 раз(а) в 174 сообщении(ях)
|
Re: Спидометр атмега 8
Сообщение от Alex9797
|
А в программе, даже на асме - это всего несколько строчек текста. Зато гарантирована точность, без всяких оговорок. И заодно усреднение значения, чтобы показания были устойчивы.
|
Чтобы показания не прыгали можно делать обновление экрана 1-2 раза в секунду. Хотя, если скорость меняется , показания обязаны меняться.
|
|
|
|
05.08.2016, 13:40
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,565
Сказал спасибо: 5,041
Сказали Спасибо 10,612 раз(а) в 3,604 сообщении(ях)
|
Re: Спидометр атмега 8
Сообщение от МВА
|
Чтобы показания не прыгали можно делать обновление экрана 1-2 раза в секунду
|
Сообщение от МВА
|
Хотя, если скорость меняется , показания обязаны меняться.
|
Это что было? Просто мысли вслух? Пост состоит из двух предложений, причем оба - взаимоисключающие. В результате смысла - ноль. Тогда зачем?
Первое предложение вообще, мягко говоря - спорное. Сама по себе частота обновления совсем не гарантирует, что показания не будут прыгать. Для этого есть более эффективные способы.
|
|
|
|
05.08.2016, 13:44
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,565
Сказал спасибо: 5,041
Сказали Спасибо 10,612 раз(а) в 3,604 сообщении(ях)
|
Re: Спидометр атмега 8
Мишутка, так и остается для меня загадкой этот вопрос:
Сообщение от miwutka
|
У меня 10 светодиодов на оборот.
|
А можно об этом чуть подробнее?
Может, имелось в виду 10 фотодиодов? Или 10 импульсов на оборот?
Как именно устроен датчик скорости?
|
|
|
|
05.08.2016, 14:06
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.10.2007
Сообщений: 2,760
Сказал спасибо: 1,105
Сказали Спасибо 1,037 раз(а) в 569 сообщении(ях)
|
Re: Спидометр атмега 8
Сообщение от МВА
|
Чтобы показания не прыгали
|
Вопрос мировоззренческий.
Даже стрелка, если дрожит, раздражает. Тем более цифры.
Наверное, при быстром изменении величины скорость обновления должна повышаться, при медленных - понижаться... И дрожание младшего разряда обновлять раз в 5 секунд
|
|
|
|
05.08.2016, 14:23
|
|
Гражданин KAZUS.RU
Регистрация: 15.08.2010
Адрес: Днепр
Сообщений: 842
Сказал спасибо: 74
Сказали Спасибо 199 раз(а) в 174 сообщении(ях)
|
Re: Спидометр атмега 8
По моему я не глядя в Даташит такого насчитал. Делителя для счетчика 128 нет, есть 64 и 256. Поэтому к цифрам не придирайтесь.
|
|
|
|
05.08.2016, 19:09
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Спидометр атмега 8
Alex9797, добрый день. Вот видео моего "девайса" )). Там светодиоды. их 72 шт.Не фотодиоды. Импульсы беру с катушки зажигания. (для тахометра). При 600 об/мин должно прийти 10 имп/секунду. Но раз 4 цилиндра значит 20 имп/сек. При 6000 об/мин будет 200 имп/сек. Я выбрал 125000 Гц тактирование таймера. Переполнение у него 0.5 сек. Думаю нормально.....
Сейчас буду переписывать алгоритм..... Как вы мне тут насоветовали. Ща буду врубаться в него. Когда я делал все вычисления в основном цикле то почему то оно не вычислялось ничего. Ну буду всё заново писать...
|
|
|
Сказали "Спасибо" miwutka
|
|
|
05.08.2016, 19:10
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Спидометр атмега 8
на стм32 можно былобы сделать, но уже под атмегу разведено. Я хочу понять принцип и найти свою ошибку. А потом уже на стм32 точно переведу....
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 22:36.
|
|