Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: ivan_fd  
Форум Picbasic.ru » Программирование МК » PicBasicPro » Подскажите по проге для спортсменов
Подскажите по проге для спортсменов
mars_000 Дата: Вт, 29.11.2011, 14:44  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 26
Репутация: 1   ±
Замечания:   ±
На сайте с 03.01.2008

Статус: Offline

Попросили меня знакомые спортсмены сделать такой апарат для судейства: на соревнованиях есть три судьи, два боковых и один центральный. у судей есть по две кнопки - зачет незачет. И самое главное результат должен выводится только после того как все судьи нажали кнопку. Суть в том что боковые смотрят на центрального судью и подстраиваются под него.
В програмировании не силен, сам писал только всякие бегушки и вольтметры на бейсике.
Я прикинул примерный алгоритм...... опрос кнопок 1судьи , опрос кнопок 2судьи, 3судьи, пока все судьи не проголосовали затем вывод на светодиоды, но вот как все на бейсике организовать ?
Может у кого есть какие наработки, или в сети чето видел. Буду премного благодарен.
С ув. Виктор.
ЯНДЕКС Дата: 29.11.2011
ADMIN Дата: Вт, 29.11.2011, 16:52  |                                                                                                                Сообщение # 2
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1087
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Ну она тогда не для спортсменов получается, а это уже сложнее. biggrin
А если серьезно, просто составь алгоритм на словах и запиши его. Потом можно и о программе поговорить конкретнее. Вот, ксатати, на мой взгляд, большая ошибка - писать сразу программу. Проработай алгоритм вначале. А записать его на языке программ - второе дело - каждый блок описывается как подпрограмма или вроде того. Поможем, если что.
mars_000 Дата: Ср, 30.11.2011, 13:36  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 26
Репутация: 1   ±
Замечания:   ±
На сайте с 03.01.2008

Статус: Offline

На словах алгоритм такой: Старт, очистка всех переменных и регистров. далее по кругу проверяется результат голосования всех судей и если есть все 3 оценки переход на программу индикации. Индикапция 5- 10 сек. и в начало программы. У каждого из судей своя подпрограмма- опрос кнопок зачет незачет, принажатии на одну из них прокращается опрос кнопок , результат заносится в переменную и программа переходит к опросу следующих кнопок....
Вроде так должно работать. Как описать опрос кнопок , чтобы после нажатия прога к ним не обращалась, а переходила дальше. Может както по другому алгоритм опроса кнопок придумать?
ADMIN Дата: Ср, 30.11.2011, 15:38  |                                                                                                                Сообщение # 4
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1087
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Ну например так:
Последовательно и в цикле

Проверяем первую кнопку судьи №1 (ну например, кнопку зачет) - если нажата - вторую игнорируем (тут варианты типа одновременно две нажал) и зацикливаемся на ожидании нажатия одной из четырех оставшихся кнопок(зачет/незачет у двух судей), после нажатия кнопки судьей №2 игнорируем его вторую кнопку и ожидаем нажатия одной из кнопок судьей №3 - выводим результат.

Далее, если первый алгоритм не сработал (первым кнопку нажал не судья №1, а судья №2) - повтор для второго судьи:

Проверяем первую кнопку судьи №2 (ну например, кнопку зачет) - если нажата - вторую игнорируем (тут варианты типа одновременно две нажал) и зацикливаемся на ожидании нажатия одной из четырех оставшихся кнопок(зачет/незачет у двух судей), после нажатия кнопки судьей №1 игнорируем его вторую кнопку и ожидаем нажатия одной из кнопок судьей №3 - выводим результат.

И третий шаг - то же самое, но начиная с третьего судьи.
Это один вариант.

Второй заключается в прерывании по любой из кнопок любого из судей. После первого прерывания(нажатия одной из кнопок одного из судей) исключаем его и реагируем только на нажатия оставшихся.
Чтобы обработать прерывания от нескольких источников - вот статья.
retas Дата: Ср, 30.11.2011, 19:56  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 447
Репутация: 11   ±
Замечания:   ±
На сайте с 10.09.2007

Статус: Offline

ПМ :
1. Стоит следить не за 6 кнопок, а за 3 судьями - каждый из них свой "провод" кнопкой кидает либо на ноль либо на плюс.
2. Схема должна следить за целостностью линий (у кнопки ставить делитель).
3. Хорошо было бы иметь индикацию принятия "ставки" и чтоб её видел нажимающий.
4. Если задать время в течение которого должны быть нажаты все кнопки (отсчет начинался бы после первого нажатия
любой кнопки), то можно исключить ошибочное нажатие, т.е. судья любую свою кнопку в это время мог бы нажимать
сколь угодно раз, но защитаным было бы последнее нажатие.
mars_000 Дата: Пт, 02.12.2011, 15:20  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 26
Репутация: 1   ±
Замечания:   ±
На сайте с 03.01.2008

Статус: Offline

Quote (ADMIN)
Второй заключается в прерывании по любой из кнопок любого из судей. После первого прерывания(нажатия одной из кнопок одного из судей) исключаем его и реагируем только на нажатия оставшихся.

Cамый подходящий вариант.
Quote (retas)
3. Хорошо было бы иметь индикацию принятия "ставки" и чтоб её видел нажимающий

Будет загоряться светодиод на пульте каждого судьи.
Хорошая статья, буду просвещаться. Прерываниями не пользовался, придется научится. Спасибо за подсказки , буду ваять прогу . Как получится отпишусь и выложу результат.
С ув. Виктор.
ADMIN Дата: Пт, 02.12.2011, 17:00  |                                                                                                                Сообщение # 7
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1087
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Quote (mars_000)
Стоит следить не за 6 кнопок, а за 3 судьями - каждый из них свой "провод" кнопкой кидает либо на ноль либо на плюс.


Этот вариант точно не пойдет, поскольку в Z-состоянии порт может считать как 0 так и 1 при отсутствии сигнала. Можно конечно и АЦП использовать, но это - не стоит того, ИМХО.
mars_000 Дата: Пн, 12.12.2011, 13:57  |                                                                                                                Сообщение # 8
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 26
Репутация: 1   ±
Замечания:   ±
На сайте с 03.01.2008

Статус: Offline

После недельных раздумий и проб с различными способами опроса кнопок сделал вот так:
if (key1D = 0) AND (key2D = 0)AND (key3D = 0)then led1 'все три сказали ДА
if (key1N = 0) AND (key2D = 0)AND (key3D = 0)then led2 '1 нет 2 да
if (key1N = 0) AND (key2N = 0)AND (key3D = 0)then led3 '2 нет 1 да
if (key1D = 0) AND (key2N = 0)AND (key3N = 0)then led4 '1 да 2 нет
if (key1D = 0) AND (key2D = 0)AND (key3N = 0)then led5 '2 да 1 нет
if (key1D = 0) AND (key2N = 0)AND (key3D = 0)then led6 '1 да 1 нет 1 да
if (key1N = 0) AND (key2D = 0)AND (key3N = 0)then led7 '1 нет 1 да 1 нет
if (key1N = 0) AND (key2N = 0)AND (key3N = 0)then lednot 'все три сказали нет

Goto mainProgram ' Возврат в начало программы
end
Конечно прога не ахти, но работает. Спортсмены взяли на тестовою проверку. Вся прога и файл протеуса в архиве. Спасибо всем за помощь smile
Прикрепления: Proga.exe (421.2 Kb)
ADMIN Дата: Пн, 12.12.2011, 15:29  |                                                                                                                Сообщение # 9
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1087
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Тема с прерываниями не далась?
retas Дата: Пн, 12.12.2011, 16:17  |                                                                                                                Сообщение # 10
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 447
Репутация: 11   ±
Замечания:   ±
На сайте с 10.09.2007

Статус: Offline

1. А если один судья в обрыве но на кнопку какую то нажал?
2. Вам конечно виднее, но как то странно для такой цели ставить 7 лед, когда, ПМ, хватает двух
или одного двухцветного. Как я понимаю, вам ведь нужно знать большинство/меньшенство сказало
ДА или НЕТ?
mars_000 Дата: Пн, 12.12.2011, 20:53  |                                                                                                                Сообщение # 11
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 26
Репутация: 1   ±
Замечания:   ±
На сайте с 03.01.2008

Статус: Offline

Судей всегда три. По светодиоду на пульте у каждого судьи( индицирует нажатие ) и большой выносной экран с таблом на светодиодах . Такое условие мне поставили. Взяли на тестирование если скажут что не нравится будем доделывать :).
В архиве есть фотки готового прибора.

Сообщение отредактировал mars_000 - Пн, 12.12.2011, 20:54
ЯНДЕКС Дата: 12.12.2011
rvstar Дата: Пн, 12.12.2011, 22:10  |                                                                                                                Сообщение # 12
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 69
Репутация: 7   ±
Замечания:   ±
На сайте с 09.10.2007

Статус: Offline

это никакой не спорт. Это вы к выборам готовитесь ))
mars_000 Дата: Вт, 13.12.2011, 14:01  |                                                                                                                Сообщение # 13
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 26
Репутация: 1   ±
Замечания:   ±
На сайте с 03.01.2008

Статус: Offline

Quote (ADMIN)
Тема с прерываниями не далась?

cry Времени маловато было... Но с прерываниями буду разбираться обязательно!
Форум Picbasic.ru » Программирование МК » PicBasicPro » Подскажите по проге для спортсменов
  • Страница 1 из 1
  • 1
Поиск: