Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
dposhish
1

Блокировка аппаратных ресурсов

15.05.2017, 16:14. Просмотров 2707. Ответов 6
Метки нет (Все метки)


Имеется поделка на микроконтроллере. По ходу дела обросла большим функционалом.
Хочется немного рефракторнуть имеющийся код.
Суть проблемы устройство имеет индикацию на 4 светодиодах.
По ним пользователь получает всю необходимую информацию об устройстве.
(со стороны пользователя проблем с восприятием нет).
Проблемы есть у меня как у разработчика.
Состояние Led может изменяться разными модулями программы.
Подключили зарядку - нужно отображать уровень заряда и его статус.
Нажали на кнопку - показывать состояние насоса и клапана.
Зашли в режим настройки - там свои режимы индикации.
Сейчас проверка происходит с помощью if и нужно помнить как это все
связано друг с другом. Правка кода часто приводит к многим ошибкам.
Может кто-то уже имел подобные проблемы - поделитесь опытом?
Сейчас мысль какая - нужно сделать семафор. Захватил ресурс- отдал ресурс.
Перехватить ресурс может только задача с более высоким приоритетом. И необходимо знать кто был хозяином ресурса последнее время?
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.05.2017, 16:14
Ответы с готовыми решениями:

Блокировка ресурсов mail.ru, google.com, yandex.ru и т.д
Добрый день форумчане! Сегодня столкнулся с проблемой. При открытии интернета через Mozilla...

Блокировка клавиши при нажатии в одной форме и блокировка в другой, третьей
Здравствуйте нужно что бы при вызове помощи в 1ом вопросе она блокировалась во 2ом...

[VM] Реализация аппаратных прерываний
Доброго времени суток, CyberForum. Уже как 2 месяца я пишу свой велосипед - эмулятор платформы...

Отключение аппаратных кнопок
Как сделать так, чтобы при нажатии кнопки Power не включался экран блокировки ?

6
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 1,864
15.05.2017, 17:14 2
Самый тупой вариант: каждый модуль поддерживает _своё_ состояние (ну там, 4 бита на светодиоды, или ещё как, если светодиод может не только гореть/не гореть, но ещё и мигать с разной частотой) + _одна_ функция отображения, которая выбирает из этих состояний актуальное. Функцию дёргать или по таймеру, или при изменении состояния.
Плюсы: модулям не надо знать друг про друга.
Минусы: некоторый оверхед по памяти и времени.
0
dposhish
15.05.2017, 17:56 3
Спасибо, проблему решает. Правим только функцию отображения. Память не проблема.
С пищалкой тоже так можно разрулить?
Пищалка может пищать
1. непрерывно (ошибка злая).
2. прерывисто 3 вида ( варнинг).
3. от нажатия по кнопке. (коротко)
Нажатие кнопки сейчас все портит. (буззер ON - задержка 0.2с, буззер OFF )
Выключает если было непрерывно.
Или сбивает КА на мелодии.
0 / 0 / 0
Регистрация: 05.10.2007
Сообщений: 498
15.05.2017, 21:25 4
Ключевые слова: системный таймер и конечный автомат. Switch-case с переменной состояния (автоматное программирование).
Можно сделать сколько угодно независимых программ с любым функционалом. Минус - большой объём кода.
0
0 / 0 / 0
Регистрация: 31.01.2013
Сообщений: 1,625
15.05.2017, 21:26 5
Нужно посадить сверху Хозяина, главного по индикации, и ходить к нему на поклон - "включи, пожалуйста, светодиод номер 1" - и иногда от него получать от ворот поворот: "Вас много, а я один, подождешь. Занят он, индицирует". Ну, и всем задачам расставить приоритеты по важности доступа к телу.
0
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 1,864
16.05.2017, 00:30 6
С пищалкой чутка сложнее, у неё состояние не задаётся 4 битами (для мелодии, к примеру, можно держать номер мелодии и текущую позицию в ней, чтобы после перерыва на бип продолжить воспроизведение), да и меняется чаще. Но, в принципе, тоже можно.
0
dposhish
16.05.2017, 11:15 7
Спасибо всем за идеи. Вопрос закрыт.
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.05.2017, 11:15

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Обработка аппаратных прерываний
Доброго вечера. Уважаемые форумчане, кто нибудь сталкивался с таким? Необходимо написать...

Совместимость программных и аппаратных лицензий 1С
Всем привет) Итак начнем с того, что стоит 1С сервер (вин7 + SQL) Платформа 8.3.12 На сервере...

Глобальные перехваты аппаратных прерываний
Вот посидел попробывал и, понял что вот так нельзя из-под доса отследить или эмулировать нажатия...

Программирование аппаратных средств с помощью АСМ
Всем привет. Подскажите хорошую книгу (в любом формате ток не "дежавю") программирования апаратных...

Обработка аппаратных прерываний по номеру IRQ
Здравствуйте! Подскажите пожалуйста ответ на вопрос:Как ОС различает когда несколько устройств...

Критическая секция запретом аппаратных прерываний
Собственно вопрос в названии. Могу ли я быть абсолютно уверен в том, что код вида: cli .....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.