25.04.2019, 15:23
|
#1
|
Прохожий
Регистрация: 25.04.2019
Сообщений: 8
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Элементарная штука на МК
Доброго времени суток, товарищи комрады.
Прошу Вашей благосклонности в помощи решения столь трудной для меня задачи.
Суть в чём: есть 9 выходов(светодиодов) с потенциалом +12В, каждый из них отвечает за определенное число. 50, 100,200 и т.д. до 12800
Надо сделать как то так, чтоб 7-сегментный индикатор показывал сумму тех, которые в данный момент горят.
Последний раз редактировалось Stonek; 25.04.2019 в 21:49.
|
|
|
|
25.04.2019, 15:31
|
#2
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,221 раз(а) в 1,319 сообщении(ях)
|
Re: Элементарная штука на МК
Студенты даже считать разучились. Ну что за народ
|
|
|
Эти 3 пользователя(ей) сказали Спасибо NewWriter за это сообщение:
|
|
|
25.04.2019, 15:48
|
#3
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,653
Сказал спасибо: 117
Сказали Спасибо 815 раз(а) в 592 сообщении(ях)
|
Re: Элементарная штука на МК
Что-то у меня 50*2⁷ никак не получается 12800...
А еще - странно, почему нельзя считать сумму на том же МК, который светодиоды поджигает?
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
|
|
|
|
25.04.2019, 18:01
|
#4
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,221 раз(а) в 1,319 сообщении(ях)
|
Re: Элементарная штука на МК
Там, если открыть картинко, будет ясно, что за последовательность - 50, 100, 200, 400, 800, 1600, 3200, 6400, 12800 - умножение на 2. Но чисел не 8, а 9!! Студень до 10 считать не умеет, дебилорама.
(блин, числа напомнили ряд ISO у цифрового фотика, четко укладывается ).
Прога пишется на "тьфу-два-байта-переслать"
Код:
|
uint16_t sumatra = 0, rida_portala = 0;
rida_portala = GPIOA-›IDR;
if(rida_portala & (1‹‹0)) sumatra += 50;
if(rida_portala & (1‹‹1)) sumatra += 100;
if(rida_portala & (1‹‹2)) sumatra += 200;
if(rida_portala & (1‹‹3)) sumatra += 400;
if(rida_portala & (1‹‹4)) sumatra += 800;
if(rida_portala & (1‹‹5)) sumatra += 1600;
if(rida_portala & (1‹‹6)) sumatra += 3200;
if(rida_portala & (1‹‹7)) sumatra += 6400;
if(rida_portala & (1‹‹8)) sumatra += 12800; // это девятый вывод, если чо!
char txt[6];
sprintf(txt, "%6d", sumatra);
OutToDisplay(txt); |
|
|
|
|
25.04.2019, 18:17
|
#5
|
Почётный гражданин KAZUS.RU
Регистрация: 12.02.2013
Сообщений: 1,047
Сказал спасибо: 43
Сказали Спасибо 273 раз(а) в 214 сообщении(ях)
|
Re: Элементарная штука на МК
Сообщение от NewWriter
|
Прога пишется на "тьфу-два-байта-переслать"
|
Она пишется ещё проще если заметить, что две соседние единицы соответствуют числам, отличающимся в два раза. Ну а масштабирующий коэф будет 50.
То есть sumatra = rida_portala* 50.
Там самое "сложное" потом - достать из sumatra десятичные числа и преобразовать их в знаки 7сегментного индикатора.
|
|
|
Сказали "Спасибо" dgrishin
|
|
|
25.04.2019, 18:52
|
#6
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,221 раз(а) в 1,319 сообщении(ях)
|
Re: Элементарная штука на МК
ну я просто решил задачу "в лоб" - сказано "должна быть сумма" - сделал именно сумму.
Последующая десятичная распаковка и вывод на семисИгментник - это действительно наисложнейшая задача, тут "не кот начхал", тут и учоные люди неделю думают )))
|
|
|
|
25.04.2019, 21:16
|
#7
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,260
Сказал спасибо: 11,170
Сказали Спасибо 3,860 раз(а) в 2,930 сообщении(ях)
|
Re: Элементарная штука на МК
dgrishin, а сумму сразу в BCD делать? Тогда останется просто вевести результат из BCD числа без лишних преобразований.
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
|
|
|
|
25.04.2019, 21:47
|
#8
|
Прохожий
Регистрация: 25.04.2019
Сообщений: 8
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Элементарная штука на МК
Ребятушки, я все понимаю, всем вам легко говорить о том в чем разбираетесь. Но ведь кто-то "крутит технично черепаху на руке(с)" кто-то на раз-два щелкает то, о чем попросил помочь я.
Посмотреть на светодиоды и прикинуть сумму можно, и делаем, но в процессе боевой работы особо времени на это нет. А это очень важный параметр для меня.
Из того что на рыл в рунете это только то, что я буду как то прикручивать на какой то микроконтроллер. С этим тоже возникают вопросы, как, какой и как прошить и т.д.
Спасибо, за разумные ответы/идеи/путенаставления))
|
|
|
|
25.04.2019, 22:01
|
#9
|
Почётный гражданин KAZUS.RU
Регистрация: 08.02.2005
Адрес: Минск, Беларусь
Сообщений: 8,173
Сказал спасибо: 2,828
Сказали Спасибо 2,751 раз(а) в 2,035 сообщении(ях)
|
Re: Элементарная штука на МК
Сообщение от Stonek
|
как то прикручивать на какой то микроконтроллер. .... как, какой и как прошить и т.д
|
Похоже, нужно придумать схему на сумматорах + дешифратор...
|
|
|
|
25.04.2019, 22:03
|
#10
|
Почётный гражданин KAZUS.RU
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,069
Сказал спасибо: 3,054
Сказали Спасибо 3,223 раз(а) в 2,188 сообщении(ях)
|
Re: Элементарная штука на МК
Сообщение от Stonek
|
и прикинуть сумму можно
|
В таком случае - надо было писать в теме "Предложения по работе". И с указанием предполагаемой суммы.
__________________
Экзорцист 40-го уровня.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 22:15.
|
|