Да про объем кода это понятно, что небольшой. Динамический опрос кнопок (в данном случае) может повлиять на точность (не сильно но все-же). В общем посмотрим что "заказчик" решит.neon-f писал(а):ок, ок, не на что не претендую...
ну когда же из этого будет секундомер.
Re: ну когда же из этого будет секундомер.
- Реклама
-
steaml
- Первый раз сказал Мяу!
- Сообщения: 24
- Зарегистрирован: Пн фев 23, 2009 16:46:13
- Откуда: Харьков
Re: ну когда же из этого будет секундомер.
ну вы меня прям запутали 
я же ламер в МК, сложно рассуждать.
собрать - не проблема, прошить атини или мегу - тоже.
а вот рассуждать о преимуществе - это уже не мое...
опытный образец однозначно на макетке, разводку уже потом (если конечно временный вариант на станет постоянным, как это часто бывает в случае успеха...).
индикатор... пусть тот же что упоминается и раньше в исходной схеме.
все-равно я его не покупал еще...
п.с. цена не критична, если речь не идет о суммах больше 30 баксов за чип...
я же ламер в МК, сложно рассуждать.
собрать - не проблема, прошить атини или мегу - тоже.
а вот рассуждать о преимуществе - это уже не мое...
опытный образец однозначно на макетке, разводку уже потом (если конечно временный вариант на станет постоянным, как это часто бывает в случае успеха...).
индикатор... пусть тот же что упоминается и раньше в исходной схеме.
все-равно я его не покупал еще...
п.с. цена не критична, если речь не идет о суммах больше 30 баксов за чип...
Re: ну когда же из этого будет секундомер.
Удалил как ненужное и вредное asm-барахло.
Последний раз редактировалось akl Вт июн 01, 2010 05:33:19, всего редактировалось 1 раз.
-
steaml
- Первый раз сказал Мяу!
- Сообщения: 24
- Зарегистрирован: Пн фев 23, 2009 16:46:13
- Откуда: Харьков
Re: ну когда же из этого будет секундомер.
Очень заманчиво
потому что очень просто 
надо попробовать... по идее на час работы сборка на коленке
надо попробовать... по идее на час работы сборка на коленке
Re: ну когда же из этого будет секундомер.
Когда соберете отпишитесь, будем код к этому всему приделывать, тот что предложен дорабатывать сложно (как впрочем и разбираться в нем). Хотя я Вам рекомендую все-таки закладываться на схему с большими возможностями - особенно если собираетесь отображать два круга и какие-то еще плюшки хотите. Впрочем если вы эту соберете, то потом код написанный на С будет не очень сложно перенести почти на любую другую.steaml писал(а):Очень заманчивопотому что очень просто
надо попробовать... по идее на час работы сборка на коленке
- Реклама
Re: ну когда же из этого будет секундомер.
держи исходник и проектик в протеусе на тини2313. заняло меньше чем пол кило. кварц, ключи, фьюзы дорисуй сам, или может кто менее ленивый поможет.
кнопок можно добавить еще 5 штук. памяти 1,5кб свободно, так что можно всякой фигни напихать. пищалку тоже можно добавить, правда придется пожертвовать индикацией точек, но они все равно не несут никакой смысловой нагрузки в данной схеме. их(точки) вообще можно просто тупо зажечь, чтоб отделить минуты, секунды, и сотые секунд.
кнопок можно добавить еще 5 штук. памяти 1,5кб свободно, так что можно всякой фигни напихать. пищалку тоже можно добавить, правда придется пожертвовать индикацией точек, но они все равно не несут никакой смысловой нагрузки в данной схеме. их(точки) вообще можно просто тупо зажечь, чтоб отделить минуты, секунды, и сотые секунд.
- Вложения
-
- секундомер.rar
- (58.28 КБ) 704 скачивания
-
steaml
- Первый раз сказал Мяу!
- Сообщения: 24
- Зарегистрирован: Пн фев 23, 2009 16:46:13
- Откуда: Харьков
Re: ну когда же из этого будет секундомер.
да собрал... только индикаторов не нашел, теперь откладывается до выходных...smac писал(а): Когда соберете отпишитесь
мне интересен как этот, простой вариант, так и с возможностью расширять функции
так что после удачной реализации первого, можно перейти ко второму.
может подтяну матчасть к этому времени... по крайней мере попытаюсь.
Re: ну когда же из этого будет секундомер.
Я Вас пытался плавно подвести к тому, что здесь плясать лучше от индикаторов, а потом и остальное приторачивать. Ну ладно, тут Вам накидали кода разного, но у него возможностей не много, да и реализация не везде хорошая, я к выходным что-нибудь свое придумаю, в принципе часть уже есть. Вы пока проверяйте монтаж, озаботьтесь программатором (как железом так и программой), если его нет, то предлагаю вариант -- stk200/300 (железо) и avreal (программа). В выходные будем пытаться отлаживаться.steaml писал(а):... только индикаторов не нашел...
-
sergei1975
- Открыл глаза
- Сообщения: 62
- Зарегистрирован: Чт апр 24, 2008 19:46:07
- Откуда: ровно
Re: ну когда же из этого будет секундомер.
smac писал(а):Я Вас пытался плавно подвести к тому, что здесь плясать лучше от индикаторов, а потом и остальное приторачивать. Ну ладно, тут Вам накидали кода разного, но у него возможностей не много, да и реализация не везде хорошая, я к выходным что-нибудь свое придумаю, в принципе часть уже есть. Вы пока проверяйте монтаж, озаботьтесь программатором (как железом так и программой), если его нет, то предлагаю вариант -- stk200/300 (железо) и avreal (программа). В выходные будем пытаться отлаживаться.steaml писал(а):... только индикаторов не нашел...
у мене е секундомер не pic16f628 4 индикатора. Починает работу с 0000 и пошло время а заканчивает секунди коли вам захочеться
2 кнопки + управлениям реле и фотодачиком
Последний раз редактировалось sergei1975 Пт июн 04, 2010 18:39:08, всего редактировалось 1 раз.
- zhu4er
- Вымогатель припоя
- Сообщения: 544
- Зарегистрирован: Пт июн 04, 2010 17:40:13
- Откуда: Непокорный город-герой Севастополь
Re: ну когда же из этого будет секундомер.
Если хотите сэкономить на 3-х выводах, то можно прилепить CD4511 специально для семисегментников. Только нужно подобрать индикатор чтобы общий был минус! Либо если плюс будет общим то нужно ставить две микрухи инвертора 4069. На эти три вывода можно запихнуть ещё три устройства... А спользовав микру 4017, можно подсоединить на один выход контроллера общие выводы индикаторов (до 10 штук). Во как 
Даже у стен есть уши...
-
AVL
- Первый раз сказал Мяу!
- Сообщения: 33
- Зарегистрирован: Чт июл 17, 2008 20:53:28
- Откуда: Коломыя UA
- Контактная информация:
Re: ну когда же из этого будет секундомер.
Всем привет!
Чёт тема заглохла. Наверное я буду её продолжателем. Ибо для спортивных целей надо сделать фотофиниш.
Радиопередачу сигнала со старта на финиш, ИК-баръер сделал. Собирлся выводить индикацию на китайские часики с секундомером, но повертев их часа два в руках решил, что получится всё это не красиво, хотя конечный результатможно получить хоть сегодня. Врубил поисковик и набрёл на этот топик. Так-что берусь за работу, о результатах сообщу дополнительно.
Чёт тема заглохла. Наверное я буду её продолжателем. Ибо для спортивных целей надо сделать фотофиниш.
Радиопередачу сигнала со старта на финиш, ИК-баръер сделал. Собирлся выводить индикацию на китайские часики с секундомером, но повертев их часа два в руках решил, что получится всё это не красиво, хотя конечный результатможно получить хоть сегодня. Врубил поисковик и набрёл на этот топик. Так-что берусь за работу, о результатах сообщу дополнительно.
-
AVL
- Первый раз сказал Мяу!
- Сообщения: 33
- Зарегистрирован: Чт июл 17, 2008 20:53:28
- Откуда: Коломыя UA
- Контактная информация:
Re: ну когда же из этого будет секундомер.
Всем привет!
Итого, что получается у меня, а что нет.
Взял я секундомар нескольками постами выше: http://radiokot.ru/forum/download/file.php?id=35830
Он меня почти устраивает, но кое-что всё-таки не устраивает.
А не устраивает то, что кнопка СТАРТ/СТОП это одна и та-же кнопка. Мне нужно раздельное управление процессами. Но не хватает разрядов для управления. Я сократил количество индикаторов от шести до четырёх, ибо индикация минут меня не интересует. Но на всякий случай тот факт, что первая минута всё-таки прошла, я решин индицировать загоранием точек внизу экрана, так к стати, можна в бинарном коде индицировать и поболее минут.
Значит, что мне удалось сделать:
- сократить к-во разрядов с 6 до 4.
- зажигать на долю секунды все точки, при переходе через минуту.
Что не удалось:
- удерживать точки зажжёнными
- разобраться с кнопками, а именно сделать раздельными кнопки СТАРТ/СТОП.
Помогите пожалуйста разобраться с моими вопросами.
Спасибо.
Прикрепляю также мной переделанный вариант.
Итого, что получается у меня, а что нет.
Взял я секундомар нескольками постами выше: http://radiokot.ru/forum/download/file.php?id=35830
Он меня почти устраивает, но кое-что всё-таки не устраивает.
А не устраивает то, что кнопка СТАРТ/СТОП это одна и та-же кнопка. Мне нужно раздельное управление процессами. Но не хватает разрядов для управления. Я сократил количество индикаторов от шести до четырёх, ибо индикация минут меня не интересует. Но на всякий случай тот факт, что первая минута всё-таки прошла, я решин индицировать загоранием точек внизу экрана, так к стати, можна в бинарном коде индицировать и поболее минут.
Значит, что мне удалось сделать:
- сократить к-во разрядов с 6 до 4.
- зажигать на долю секунды все точки, при переходе через минуту.
Что не удалось:
- удерживать точки зажжёнными
- разобраться с кнопками, а именно сделать раздельными кнопки СТАРТ/СТОП.
Помогите пожалуйста разобраться с моими вопросами.
Спасибо.
Прикрепляю также мной переделанный вариант.
- Вложения
-
- секундомер2.rar
- модифицированный мной
- (79.12 КБ) 394 скачивания
-
AVL
- Первый раз сказал Мяу!
- Сообщения: 33
- Зарегистрирован: Чт июл 17, 2008 20:53:28
- Откуда: Коломыя UA
- Контактная информация:
Re: ну когда же из этого будет секундомер.
Идём дальше, хоть меня, вроде, никто и не слушает. 
Что полезного сделал: если время отсчёта переваливает через одну минуту, то загораются точки.
Сделал ЭТО такой строчкой: if (min==1) {PORTB.7 =1;}
Осталось с кнопками разобраться.
И тут мне совершенно не ясно с этим участком ПРОСТЕЙШЕГО кода: пишу комментарии свои.
while (1)
{
while (PIND.6==1) {}; // пока не нажата кнопка - ничего не делаем
start++; delay_ms(2); // инкремент start (зачем?). задержка (зачем?)
while (PIND.6==0) {}; // пока нажата кнопка - ничего не делаем
};
}
Помогите, плз, с кнопками.
Что полезного сделал: если время отсчёта переваливает через одну минуту, то загораются точки.
Сделал ЭТО такой строчкой: if (min==1) {PORTB.7 =1;}
Осталось с кнопками разобраться.
И тут мне совершенно не ясно с этим участком ПРОСТЕЙШЕГО кода: пишу комментарии свои.
while (1)
{
while (PIND.6==1) {}; // пока не нажата кнопка - ничего не делаем
start++; delay_ms(2); // инкремент start (зачем?). задержка (зачем?)
while (PIND.6==0) {}; // пока нажата кнопка - ничего не делаем
};
}
Помогите, плз, с кнопками.
Re: ну когда же из этого будет секундомер.
переменная start - битовая, тоесть она либо 0 либо 1. т.е увеличили её на единицу - она стала 1, еще увеличили на единицу - она стала 0. и так далее. А в прерывании где отсчитывается время, определяется её состояние, и если она равна единице - то время считается, если она равна 0 - время не считается.
а задержка - это типа я начал антидребезг сооружать, но никто проектом не заинтересовался, я так и бросил как было. Для протеуса можешь вообще выбросить. но если будешь делать в железе, придется полноценный антидребезг делать.
вот так походу полноценный антидребезг должен получиться.
а если тебе надо раздельные кнопки на старт и стоп, то посади вторую кнопку на освободившийся вывод тиньки. при нажатии первой кнопки(старт) переменной start присваивай 1, а при нажатии второй кнопки(стоп) этой переменной присваивай 0.
И все.
а задержка - это типа я начал антидребезг сооружать, но никто проектом не заинтересовался, я так и бросил как было. Для протеуса можешь вообще выбросить. но если будешь делать в железе, придется полноценный антидребезг делать.
вот так походу полноценный антидребезг должен получиться.
Код: Выделить всё
while (PIND.6!=0) {};
start++; delay_ms(200);
while (PIND.6!=1) {};
delay_ms(200);а если тебе надо раздельные кнопки на старт и стоп, то посади вторую кнопку на освободившийся вывод тиньки. при нажатии первой кнопки(старт) переменной start присваивай 1, а при нажатии второй кнопки(стоп) этой переменной присваивай 0.
И все.
-
AVL
- Первый раз сказал Мяу!
- Сообщения: 33
- Зарегистрирован: Чт июл 17, 2008 20:53:28
- Откуда: Коломыя UA
- Контактная информация:
Re: ну когда же из этого будет секундомер.
neon-f, спасибо, ваяю.
Вот что прописал:
if (PIND.6==0) {start=1;}
if (PIND.5==0) {start=0;}
и заработало, даже, приблизительно как надо.
Есть три кнопки. РЕСЕТ, СТАРТ, СТОП.
Теперь я хочу сделать так, что б ресет автоматически срабатывал, при нажатии на кнопку СТАРТ и начинался отсчёт времени.
Причём обнуляться значение должно после нажатия кнопки СТАРТ только тогда, когда перед этим отсчёт был остановлен кнопкой СТОП.
Итого, первая часть вопроса: "как програмно сделать РЕСЕТ, какой командой (именно ресетнутьсам проц, а не показания на дисплее)?
Вторую часть вопроса попробую решить сам на основе имеющихся крупиц знаний
Вот что прописал:
if (PIND.6==0) {start=1;}
if (PIND.5==0) {start=0;}
и заработало, даже, приблизительно как надо.
Есть три кнопки. РЕСЕТ, СТАРТ, СТОП.
Теперь я хочу сделать так, что б ресет автоматически срабатывал, при нажатии на кнопку СТАРТ и начинался отсчёт времени.
Причём обнуляться значение должно после нажатия кнопки СТАРТ только тогда, когда перед этим отсчёт был остановлен кнопкой СТОП.
Итого, первая часть вопроса: "как програмно сделать РЕСЕТ, какой командой (именно ресетнутьсам проц, а не показания на дисплее)?
Вторую часть вопроса попробую решить сам на основе имеющихся крупиц знаний
Re: ну когда же из этого будет секундомер.
нет ничего проще. когда объявляешь переменную start, присвой ей сразу значение 1. и он сразу начнет считать. кнопка сброс станет кнопкой старт, а кнопка старт выкидывается.
Код: Выделить всё
bit start=1; -
AVL
- Первый раз сказал Мяу!
- Сообщения: 33
- Зарегистрирован: Чт июл 17, 2008 20:53:28
- Откуда: Коломыя UA
- Контактная информация:
Re: ну когда же из этого будет секундомер.
Я не пробовал, но по-идее, девайс начнёт считать сразу, после подачи питания, а мне нужно, что б по замыканию контактов начал считать, а не при подаче питания на него. Ибо если кто-то сдуру пересечёт стартовую линию, в то время, когда на дистанции уже будет другой спортсмен, то результат обнулится и начнётся отсчёт с начала, что есть недопустимо.neon-f писал(а):нет ничего проще. когда объявляешь переменную start, присвой ей сразу значение 1. и он сразу начнет считать. кнопка сброс станет кнопкой старт, а кнопка старт выкидывается.
Код: Выделить всё
bit start=1;
Последний раз редактировалось AVL Вт июл 27, 2010 16:00:26, всего редактировалось 1 раз.
Re: ну когда же из этого будет секундомер.
тогда start храни во флеше, а при включении анализируй её состояние, и принимай решение что делать.
короче тут просто продумать нужный тебе алгоритм, а в программировании этого у тебя проблем вроде уже нет
короче тут просто продумать нужный тебе алгоритм, а в программировании этого у тебя проблем вроде уже нет
-
AVL
- Первый раз сказал Мяу!
- Сообщения: 33
- Зарегистрирован: Чт июл 17, 2008 20:53:28
- Откуда: Коломыя UA
- Контактная информация:
Re: ну когда же из этого будет секундомер.
Не в флеше, а в ЕЕПРОМЕ, наверное, Вы имели ввиду?neon-f писал(а):тогда start храни во флеше, а при включении анализируй её состояние, и принимай решение что делать.
короче тут просто продумать нужный тебе алгоритм, а в программировании этого у тебя проблем вроде уже нет
-
AVL
- Первый раз сказал Мяу!
- Сообщения: 33
- Зарегистрирован: Чт июл 17, 2008 20:53:28
- Откуда: Коломыя UA
- Контактная информация:
Re: ну когда же из этого будет секундомер.
Вот написал нужный мне код, который, работает в Проеусе. Ввёл допонительную битовую переменную "stop", которая следит за кнопкой СТОП и соответственно меняет алгоритм работы кнопки ПУСК. Я - доволен. Спасибо за помощь. Сделаю в железе - отпишусь неприменно.
while (1)
{
if ((PIND.6==0)&(stop==1))
{ start=1;
stop=0;
tik= des_tik = sec = des_sec = min=0;
}
if ((PIND.6==0)&(stop==0))
{ start=1;
stop=0;
}
if (PIND.5==0) {start=0; stop=1;}
};
}
while (1)
{
if ((PIND.6==0)&(stop==1))
{ start=1;
stop=0;
tik= des_tik = sec = des_sec = min=0;
}
if ((PIND.6==0)&(stop==0))
{ start=1;
stop=0;
}
if (PIND.5==0) {start=0; stop=1;}
};
}


