Цифровой одометр на Atmega8

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
yur4ik
Вымогатель припоя
Сообщения: 613
Зарегистрирован: Сб окт 17, 2009 18:56:05
Откуда: РФ, Башкортостан г.Сибай
Контактная информация:

Цифровой одометр на Atmega8

Сообщение yur4ik »

Давно уже хочу все собрать в машину цифровую панель приборов, но никак руки не доходят. И вот кажется пришло это время, пока болею нужно что то же делать :) все собрал в кучу, появилось одно но!!! то что со спидометром и одометром я так и не определился. На сайте есть уже проект спидометр+одометр но там используется жки. по началу я его хотел собирать, сейчас что-то уже расхотел и решил что все будет только на семисегментных индикаторах. Отдельная схема спидометра у меня имеется, а вот одометра нету :( поэтому решил попробовать сделать его сам, в программировании понимаю пишу программы для ПК, но думаю перейти на мк большого труда не составит :). Одометр представляю таким к одному мк цепляется два семисегментных индикатора на первом будет суточный пробег 999,9 км а на втором общий 999999,9 км.
Теперь вопрос к профессионалам по мк:
1. Почитав про avr(остановился на avr, а не на pic) пришел к выводу что хватит с лихвой atmega8. так или нет?
2. Прерывания лучше всего отслеживать через внешнее прерывание?
Заранее спасибо.
Нельзя всё знать, достаточно понимать.
Реклама
vovik15
Опытный кот
Сообщения: 768
Зарегистрирован: Сб ноя 08, 2008 18:32:36
Контактная информация:

Re: Цифровой одометр на Atmega8

Сообщение vovik15 »

а почему именно авр а не пик?
да, вы правы лучьше сделать внешние прерывания ,и значения сохранять в энергонезависимую память. + кпопочка обнуления суточного пробега,и вторая кнопка "отматывание общих показаний" на случай продажи авто
Реклама
Аватара пользователя
yur4ik
Вымогатель припоя
Сообщения: 613
Зарегистрирован: Сб окт 17, 2009 18:56:05
Откуда: РФ, Башкортостан г.Сибай
Контактная информация:

Re: Цифровой одометр на Atmega8

Сообщение yur4ik »

vovik15 писал(а):а почему именно авр а не пик?
да, вы правы лучьше сделать внешние прерывания ,и значения сохранять в энергонезависимую память. + кпопочка обнуления суточного пробега,и вторая кнопка "отматывание общих показаний" на случай продажи авто
мне просто кажется, что на форуме больше всем авр нравиться, чем пик. Поэтому выбрал авр чтобы в случае чего могли помочь)))
Нельзя всё знать, достаточно понимать.
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Цифровой одометр на Atmega8

Сообщение ploop »

1. Почитав про avr(остановился на avr, а не на pic) пришел к выводу что хватит с лихвой atmega8. так или нет?
Хватит.
2. Прерывания лучше всего отслеживать через внешнее прерывание?
Так точно.
Одометр представляю таким к одному мк цепляется два семисегментных индикатора на первом будет суточный пробег 999,9 км а на втором общий 999999,9 км.
А вот ног для индикации вам не хватит. Надо будет поставить сдвиговые регистры.
Реклама
Эиком - электронные компоненты и радиодетали
vovik15
Опытный кот
Сообщения: 768
Зарегистрирован: Сб ноя 08, 2008 18:32:36
Контактная информация:

Re: Цифровой одометр на Atmega8

Сообщение vovik15 »

ATMEGA 32 ног точно хватит. и без сдвиговых можно обойтись
Реклама
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Цифровой одометр на Atmega8

Сообщение ploop »

Не советовал бы я. Во-первых, более дорогой, во-вторых сильная нагрузка на порты, в третьих - с этой работой кто-нибудь из тинек даже справится.
Сдвиговый регистр стоит менее 10 рублей.
Реклама
Аватара пользователя
yur4ik
Вымогатель припоя
Сообщения: 613
Зарегистрирован: Сб окт 17, 2009 18:56:05
Откуда: РФ, Башкортостан г.Сибай
Контактная информация:

Re: Цифровой одометр на Atmega8

Сообщение yur4ik »

ploop писал(а):Не советовал бы я. Во-первых, более дорогой, во-вторых сильная нагрузка на порты, в третьих - с этой работой кто-нибудь из тинек даже справится.
Сдвиговый регистр стоит менее 10 рублей.
так все таки что лучше сдвиговой регистр или взять с большим кол-во ног атмегу?
тогда сразу вопрос если ставить сдвиговой регистр то нужно ли как то его сопрягать с мк я имею ввиду программно)
Нельзя всё знать, достаточно понимать.
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Цифровой одометр на Atmega8

Сообщение ploop »

Если программу будете писать сами, то сопряжение будет гораздо проще, чем лепить динамическую индикацию на столько каналов.
Сдвиговые регистры подключаются последовательно, загоняете туда данные и всё. Используются две ноги МК.
Аватара пользователя
yur4ik
Вымогатель припоя
Сообщения: 613
Зарегистрирован: Сб окт 17, 2009 18:56:05
Откуда: РФ, Башкортостан г.Сибай
Контактная информация:

Re: Цифровой одометр на Atmega8

Сообщение yur4ik »

ploop писал(а):Если программу будете писать сами, то сопряжение будет гораздо проще, чем лепить динамическую индикацию на столько каналов.
Сдвиговые регистры подключаются последовательно, загоняете туда данные и всё. Используются две ноги МК.
а не могли бы по подробнее объяснить как работают сдвиговые регистры, пожалуйста? а то я понимаю что они так работают подавая на вход импульсы каждый регистр увеличивается на 1 и выход этого регистра находиться в 1 состоянии потом он сбрасывается в 0 состояние и все так продолжается
писать буду сам прошивку
а может у кого буть есть в proteus как работают сдвиговые регистры для более наглядной разборки?
тогда буду использовать регистры и тогда даже можно что буть поменьше чем атмега 8 взять например аттини можно будет? только какую ATtiny13 или ATtiny2313?
блин ща почитал про регистры в инете и не че не понял :( болезнь похоже на мне через чур плохо сказывается
мне все это очень напоминает счетчик к561ие8
читая больше про регистры у меня все большая каша становиться в голове :(
Нельзя всё знать, достаточно понимать.
Аватара пользователя
Fasterpast
Мучитель микросхем
Сообщения: 493
Зарегистрирован: Ср фев 14, 2007 12:07:58
Откуда: Москва
Контактная информация:

Re: Цифровой одометр на Atmega8

Сообщение Fasterpast »

Если никто не против, тоже влезу в тему, так как сам сейчас разрабатываю приборку цифровую. И топикстартеру думаю тоже мои размышления будут полезны:
Итак, необходимо, чтобы после того как питание пропало, показания одометра не обнулялись. Значит надо писать в еепром, а у него ограничение в 100000 циклов. Ну скажем делать запись каждый один км, но 100000км - не такой уж большой показатель для машины. Может через каждые 10 тысяч менять область, куда пишется число или даже чаще... Что скажите?

Просто про регистры: представьте, что регистр - банка с дверцей сбоку, куда вы сверху (вход регистра) последовательно по одному кирпичику кидаете данные. скажем сначала 0, потом 1, потом 1 и т.д После того как все 8 кирпичиков в банку сложены, вы открываете боковую дверцу, и все эти 8 кирпичков (бит) сразу вываливаются наружу (на выходы регистра).

Но только в регистре кирпичики не вываливаются, а остаются, поэтому если вы положите сверху 9й кирпич, самый нижний уйдёт в небытье.
Последний раз редактировалось Fasterpast Пн фев 07, 2011 14:41:17, всего редактировалось 2 раза.
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Цифровой одометр на Atmega8

Сообщение ploop »

а не могли бы по подробнее объяснить как работают сдвиговые регистры, пожалуйста?
Могу на пальцах, но их несколько разновидностей, поэтому какой конкретно взять - надо отдельно обсудить.

Суть такая: имеется два входа и много (пусть 8: Q0-Q7) выходов. Один из входов тактовый, второй - для данных. При подаче импульса на тактовый вход, состояние входа для данных копируется на выход Q0, при этом что было на Q0 переносится на Q1, его прежнее состояние - на Q2 и т.д. Короче при тактовом импульсе весь ряд "сдвинется" на одну позицию.

Если нам надо получить на выходе 11001100 то алгоритм такой: выставляем "0" на входе данных, делаем 2 тактовых импульса, затем "1" опять два тактовых импульса ну и до конца.

Если 8 разрядов мало - соединяем последний выход (Q7) одного регистра со входом данных другого. Тактовые входы параллелим. Вот и всё, получили 16 разрядов, т.к. последний бит будет уходить в другой регистр и так же ползти согласно тактовым импульсам. Таким образом их можно наращивать сколь угодно много.
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Цифровой одометр на Atmega8

Сообщение ploop »

Итак, необходимо, чтобы после того как питание пропало, показания одометра не обнулялись. Значит надо писать в еепром, а у него ограничение в 100000 циклов.
Датчик на пропадание питания. По прерыванию с него писать. Любой электролит протянет МК необходимое время, пока тот спокойно запишет.
Аватара пользователя
Fasterpast
Мучитель микросхем
Сообщения: 493
Зарегистрирован: Ср фев 14, 2007 12:07:58
Откуда: Москва
Контактная информация:

Re: Цифровой одометр на Atmega8

Сообщение Fasterpast »

ploop писал(а):
Итак, необходимо, чтобы после того как питание пропало, показания одометра не обнулялись. Значит надо писать в еепром, а у него ограничение в 100000 циклов.
Датчик на пропадание питания. По прерыванию с него писать. Любой электролит протянет МК необходимое время, пока тот спокойно запишет.
Да, спасибо, тоже как вариант... Можно в принципе и каждые 10км на всякий случай писать
Аватара пользователя
yur4ik
Вымогатель припоя
Сообщения: 613
Зарегистрирован: Сб окт 17, 2009 18:56:05
Откуда: РФ, Башкортостан г.Сибай
Контактная информация:

Re: Цифровой одометр на Atmega8

Сообщение yur4ik »

ploop писал(а):
а не могли бы по подробнее объяснить как работают сдвиговые регистры, пожалуйста?
Могу на пальцах, но их несколько разновидностей, поэтому какой конкретно взять - надо отдельно обсудить.

Суть такая: имеется два входа и много (пусть 8: Q0-Q7) выходов. Один из входов тактовый, второй - для данных. При подаче импульса на тактовый вход, состояние входа для данных копируется на выход Q0, при этом что было на Q0 переносится на Q1, его прежнее состояние - на Q2 и т.д. Короче при тактовом импульсе весь ряд "сдвинется" на одну позицию.

Если нам надо получить на выходе 11001100 то алгоритм такой: выставляем "0" на входе данных, делаем 2 тактовых импульса, затем "1" опять два тактовых импульса ну и до конца.

Если 8 разрядов мало - соединяем последний выход (Q7) одного регистра со входом данных другого. Тактовые входы параллелим. Вот и всё, получили 16 разрядов, т.к. последний бит будет уходить в другой регистр и так же ползти согласно тактовым импульсам. Таким образом их можно наращивать сколь угодно много.
Спасибо, все оказывается легко и просто :)
Нельзя всё знать, достаточно понимать.
Аватара пользователя
yur4ik
Вымогатель припоя
Сообщения: 613
Зарегистрирован: Сб окт 17, 2009 18:56:05
Откуда: РФ, Башкортостан г.Сибай
Контактная информация:

Re: Цифровой одометр на Atmega8

Сообщение yur4ik »

в обучалке читал про авр и наткнулся про динамическую индикацию решил смоделировать в проусе все сделал как там прошивку записал опа на идикатор нечего не показывает :( думал ошибся проверил все, все норм заменил ат90с2313 на аттини2313 по индикатору начали бегать нули и все в чем дело в прикрепленном все показанно
Вложения
Безимени-1.jpg
(159.11 КБ) 899 скачиваний
Нельзя всё знать, достаточно понимать.
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Цифровой одометр на Atmega8

Сообщение ploop »

по индикатору начали бегать нули и все в чем дело в прикрепленном все показанно
Просто дело в том, что динамическая индикация заработала :)
Аватара пользователя
yur4ik
Вымогатель припоя
Сообщения: 613
Зарегистрирован: Сб окт 17, 2009 18:56:05
Откуда: РФ, Башкортостан г.Сибай
Контактная информация:

Re: Цифровой одометр на Atmega8

Сообщение yur4ik »

ploop писал(а):
по индикатору начали бегать нули и все в чем дело в прикрепленном все показанно
Просто дело в том, что динамическая индикация заработала :)
ну это я заметил но не пойму почему нули бегают только нули выводит вот с этой ссылки повторял http://radiokot.ru/start/mcu_fpga/avr/15/
там я как понял он вроде хочет вывести цифры 1234
Нельзя всё знать, достаточно понимать.
Аватара пользователя
yur4ik
Вымогатель припоя
Сообщения: 613
Зарегистрирован: Сб окт 17, 2009 18:56:05
Откуда: РФ, Башкортостан г.Сибай
Контактная информация:

Re: Цифровой одометр на Atmega8

Сообщение yur4ik »

люди извеняюсь :oops: я тут малость накосячил я не ту прошивку взял я засунул в этот проект прошивку от последней статьи :)) ща все работает только правда очень хорошо видно как циферки тухнут и опять загораються :) аа все нашел поставил в настройках проца CLKDIV8 поставил unprogrammed и повысел частоту установив CKSEL на 8MHz и все стало просто супер))))
Нельзя всё знать, достаточно понимать.
s64
Потрогал лапой паяльник
Сообщения: 321
Зарегистрирован: Пн окт 18, 2010 21:18:21

Re: Цифровой одометр на Atmega8

Сообщение s64 »

ploop писал(а):
Одометр представляю таким к одному мк цепляется два семисегментных индикатора на первом будет суточный пробег 999,9 км а на втором общий 999999,9 км.
А вот ног для индикации вам не хватит. Надо будет поставить сдвиговые регистры.
по моему ног хватает 11 символов + 8 сегментов = 19 ног. у 8-й меги - выдержка из ДШ
I/O and Packages
– 23 Programmable I/O Lines
– 28-pin PDIP, 32-lead TQFP, 28-pad QFN/MLF and 32-pad QFN/MLF
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Цифровой одометр на Atmega8

Сообщение ploop »

В принципе да, впритык. Но лишнюю кнопку/светодиод не воткнёшь. При том еще счетные входы... я бы не стал так геморриться :)
Ответить

Вернуться в «AVR»