Всем Привет! проблема вот такая у меня.. нужен секундомер в спорт зал. Параметры секундомера такие: должен быть 4х разрядный 7ми сегментный индикатор, секундомер обязательно должен считать сотые доли секунды (это самый важный критерий) то есть должно получиться так 99.99 -секунды.сотые секунды. я прочел множество форумом, просмотрел кучу программ и схем, но нигде не нашел именно такого счета, по этому и решился написать.. сам я не программист, но спать могу все что угодно и могу зашить готовую программу, имел опыт работы с AVR-ками, но и с PIC контролерами думаю тоже разберусь Вот подобные устройства http://www.sprut.de/electronic/pic/programm/stop.htm и вот.. это часы, но может программу не сложно будет переделать? http://radiokot.ru/circuit/digital/home/33/ кто-нибудь может помочь? ооочень нудно...
Немного пояснений. В архив вложены 2 исходника для 4(формат индикации сек.мсек) и 6(формат индикации мин сек.мсек) индикаторов. Можно применять любой кварц 1...16МГц, нужно только в исходнике в строке
Код:
.equ Fo=xxxxxxxx
записать своё значение и ассемблировать его с помощью соответствующего батника. Для этого приводится вся необходимая информация.
Последний раз редактировалось akl Ср дек 11, 2013 16:45:01, всего редактировалось 3 раз(а).
Эта задача более корректна для MCS51 при внешнем аппаратном управлении счетом таймер/счетчиков. Для остальных семейств будут потери времени, порой весьма заметные.
Для остальных семейств будут потери времени, порой весьма заметные.
Вы можете это доказать? В качестве пятничной развлекухи, ниже привожу сканы работы студии отсчёта 1-й минуты и 2-х минут кода приведённого мною выше. СпойлерСпойлер
Конечно могу - да и чего тут особо доказывать - у 51й управление пуск/стоп всего лишь наличием уровня на управляющем входе - а это задержка в максимум формирователь на внешнем RS - для кнопы плюс постоянный интервал обработки входной линии порта - всегда одинаковые и минимальные.. У остальных моделей всего лишь обработчик внешних кноп по прерыванию. Разница будет накапливаться при режиме многократного пуска/останова из-за лишних тиков за время обработки прерываний (или программного поллинга) управляющего счетом сигнала. Речь ведь идет о секундомере. В однократном запуске/останове разница практически незаметна, но при наличии измерений "рваных" интервалов... Ежли охота практической проверки - могу переделать модуль и программу для 51-й (в теме viewtopic.php?f=62&t=94201 ) под внешнее управление таймером/секундомером и провести сравнение с аналогом на АВРке при режиме управления с кнопок. Только вот надо сразу оба макета сделать и эталнонный секундомер иметь, да возможно еще спецблок для одновременной подачи сигнала (симулятор кнопок). p.s. программка схемок под ПИК еще пока в стадии измышления
У остальных моделей всего лишь обработчик внешних кноп по прерыванию. Разница будет накапливаться при режиме многократного пуска/останова из-за лишних тиков за время обработки прерываний (или программного поллинга) управляющего счетом сигнала. Речь ведь идет о секундомере.
Это всего лишь Ваши надумки из за Вашей же неосведомленности . Зачем останавливать таймер?
BOB51 писал(а):
программка схемок под ПИК еще пока в стадии измышления
У остальных моделей всего лишь обработчик внешних кноп по прерыванию. Разница будет накапливаться при режиме многократного пуска/останова из-за лишних тиков за время обработки прерываний (или программного поллинга) управляющего счетом сигнала. Речь ведь идет о секундомере.
Это всего лишь Ваши надумки из за Вашей же неосведомленности . Зачем останавливать таймер?
можно и не останавливать, ежли величиной, отрабатываемой таймером решено пренебречь (реально учитывается только время вторичных счетчиков) - но это допустимо только при ОДНОКРАТНОМ отсчете без суммирования нескольких интервалов (аналогично и для таймера обратного отсчета с "резанным" пуском/остановом)
Цитата:
BOB51 писал(а):
программка схемок под ПИК еще пока в стадии измышления
можно и не останавливать, ежли величиной, отрабатываемой таймером решено пренебречь (реально учитывается только время вторичных счетчиков) - но это допустимо только при ОДНОКРАТНОМ отсчете без суммирования нескольких интервалов (аналогично и для таймера обратного отсчета с "резанным" пуском/остановом)
Прерывание от таймера на 1ms . В прерывании счетчик на максимально возможный интервал инкрементируемый каждые 10ms или 100ms , в зависимости от нужного Вам разрешения . В том же прерывании поллинг кнопок каждые 10ms . При фиксировании промежуточных значений секундомера ( естесно от кнопок ) копируем значение счетчика в буферы. При событии СТОП останавливаем счетчик . О каком суммировании ошибок здесь может идти речь ? Вам бы батенька подучиться немного ...
И нафига столько дополнительных программных извратов, если есть возможность просто остановить счет? Да и любой программный вариант всегда будет медленнее и нестабильнее относительно аппаратного. По сему использовать все же Удобнее 51-й (минимальная цена при максимальных возможностях) затем, возможно, АВР (режим "захвата") и на последок ПИК (особо 10/12/16 - ибо трахотливое дело там прерывания обслуживать), а 18-й безмерно дорог. Другое дело, ежли больше применить ничего не можем (или не умеем).
И нафига столько дополнительных программных извратов, если есть возможность просто остановить счет? Да и любой программный вариант всегда будет медленнее и нестабильнее относительно аппаратного.
Вы просто не въехали в суть, из за неумения слушать других. Вот Вам домашнее задание - смоделируйте описанное мной , будет что обсуждать . А пока от Вас один бред исходит...
По сему использовать все же Удобнее 51-й (минимальная цена при максимальных возможностях) затем, возможно, АВР (режим "захвата") и на последок ПИК (особо 10/12/16 - ибо трахотливое дело там прерывания обслуживать), а 18-й безмерно дорог.
Могу и здесь обломать. Из все что Вы перечислили и в подметки не годится STM32, тем более Вами обожествляемые 51. В контексте решаемой задачи , возможна практически полностью аппаратная реализация . Как вывод на LED дисплей, так и секундомер , реализуемый на RTC + захват значений timestamp от tamper. Ну и цена на тот же STM32F030F, где все это есть, намного ниже перечисленного "зоопарка"
Последний раз редактировалось AlekseyEnergo Сб дек 14, 2013 17:50:36, всего редактировалось 2 раз(а).
Это 32-х разрядного "монстра" на простейший секундомер пустить? Тогда уж лучше какую- нибудь прототипную плату с STM32 под крутой ОСкой, иль нетбук на крайний случай... Да, совсем забыл - это ж спортзал... Значить берем самый продвинутый ПК с 8-й винью, десяток АРМов понавороченней (обязательно с NET- приложениями), ставим по АРМу с модемом на каждый индикатор и вяжем все в сетку через мобильный инет, чтоб проводки к каждому знакоместу не тянуть. Все это в комплексе с крутой прогой (современных аналогов полно) цепляем на комп. Обязательно у каждого знакоместа персональный web-интерфейс с удаленным доступом. А на базовом ПК , желательно через инет, секундомер многооконный с логгерами, фотофинишем и распечаткой различных графиков. Совсем забыл про персональные блоки на спортсменах - логгируют ускорение, ЧСС, артериальное давление и частоту пульса за время пробежки (ну есстесственно так же через мобильный инет).
Это 32-х разрядного "монстра" на простейший секундомер пустить?
Весьма обычно для нуба и так же тупо. Сей "монстр" стоит 20 руб. и в SOIC 20 что вполне паяемо и по габаритам равносильно ATTINY. Остальное даже читать не стоит , ибо бред...
Это 32-х разрядного "монстра" на простейший секундомер пустить?
Сей "монстр" стоит 20 руб. и в SOIC 20 что вполне паяемо и по габаритам равносильно ATTINY.
17 рублей. Но аврки проще и куча наработок.
_________________ Разработал: -BLDC -ФУОЗ/МПСЗ -SMART BMS -ECU/EDC на STM32F4(43%)+CPLD(57%) -Моноинжектор на ATSAMD20G16 -контроллер эффектов для RGB LED ленты -умные часы/обратный счет/секундомер -устройство измерения емкости АКБ
Вообще-то речь была не о том, что нубу ближе. Если почитать выше, можно увидеть, что STM32 я привел как убийцу 8биток . Да и проще, это весьма спорный вопрос что проще. Тонны быдлокода на AVR или десяток строк конфигурации в STM32 ....
Дык ежли так крут - тебе день для того, чтоб схемку, исходник и макет изготовить. А я как "старикашка - дубашка" имею недельку на свой вариант ибо по-старинке на тетрадных листьях карандашиком работать приходится, да макетку подходяшшу лепить из подручных средств. По задаче топикстартера - 4-х разрядный светодиодный индикатор (местный), счет в пределах 00.00-99.99 секунд, кнопки пуск/останов, сброс. Каждый на том, что для себя по-удобнее считает слепим и в данной теме свои материалы выложим. Как условия?
На "слабо" будешь себе подобных брать . Все что надо для реализации уже озвучено . Тем более в железе уже полгода как крутится , а халяву выкладывать увольте...
bangel609 1)сколько промежуточных результатов и нужны ли они вообще ? 2) Если нужны, как выводить на дисплей. 3)Логика работы кнопок ну и естесно показаний на дисплее
1) сколько промежуточных результатов и нужны ли они вообще ? 2) Если нужны, как выводить на дисплей. 3) Логика работы кнопок ну и естесно показаний на дисплее
Много чего добавилось.теперь так: - прямой счет, секундомер (реализовано уже) - режим часов с дс1307 - обратный отсчет - мега8
dosikus писал(а):
Да и проще, это весьма спорный вопрос что проще. Тонны быдлокода на AVR или десяток строк конфигурации в STM32 ....
На авре тоже с десяток строк инициализации, она там и там.
У меня примерно 5 сотен тинек, две сотни мег, и сотни полторы кортексов и стм8, вместе. По разработкам паритет AVR/STM32(8).
_________________ Разработал: -BLDC -ФУОЗ/МПСЗ -SMART BMS -ECU/EDC на STM32F4(43%)+CPLD(57%) -Моноинжектор на ATSAMD20G16 -контроллер эффектов для RGB LED ленты -умные часы/обратный счет/секундомер -устройство измерения емкости АКБ
На "слабо" будешь себе подобных брать . Все что надо для реализации уже озвучено . Тем более в железе уже полгода как крутится , а халяву выкладывать увольте...
bangel609 1)сколько промежуточных результатов и нужны ли они вообще ? 2) Если нужны, как выводить на дисплей. 3)Логика работы кнопок ну и естесно показаний на дисплее
Значит проигрыш признан Если даже столь простое решение считать "халявой" ОТ ЖАБЫ - как разработчик "специалист" уже мертв...
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения