реклама на сайте
подробности

 
 
> FreeRTOS: семафоры,очереди..., Разъясните мне, что для чего нужно
Bender
сообщение Aug 24 2006, 09:03
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 123
Регистрация: 28-06-05
Из: Тула
Пользователь №: 6 361



Решил вот использовать ось.
Допустим есть девайс вот такой конфигурации:
кнопка, индикатор(I2C), память(I2C),часы(I2C).
Требуется:
1. отображать на индикаторе текущее время
2. при нажатой кнопке вывести дополнительно сообщение на индикатор
3. записать в память время нажатия/отпускания кнопки

Значит, есть ресурс I2C, который должен быть в монопольном доступе некоторое время
есть событие - нажатие/отпускание кнопки и есть флаг состояния кнопки

Как бы это получше реализовать во FreeRTOS с помощью ее сервисов?

Я думаю так:
Создаем семафор I2C
Создаем задачи:
а) вывод на индикатор, период, допустим 0.2сек
б) опрос часов период, допустим 0.5сек
в) опрос кнопки, период, допустим 0.05сек
г) запись в память

Если задача работает с I2C, то она захватывает семафор. Остальные ждут его освобожения
А вот как дальше организовать взаимодействие, не представляю...
Как задаче записи сообщить про событие нажатия? как при выводе на индикатор получить состояние кнопки?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Сергей Борщ
сообщение Oct 19 2006, 14:26
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Bender @ Aug 24 2006, 12:03) *
Решил вот использовать ось.
Допустим есть девайс вот такой конфигурации:
кнопка, индикатор(I2C), память(I2C),часы(I2C).
Требуется:
1. отображать на индикаторе текущее время
2. при нажатой кнопке вывести дополнительно сообщение на индикатор
3. записать в память время нажатия/отпускания кнопки

Я думаю так:
Я бы возможно решал так:
семафор на I2C
семафор на индикатор
задача опроса часов
задача опроса кнопки.

Задача опроса часов:
захватить семафор I2C
прочитать часы
отпустить I2C
захватить LCD
вывести время
отпустить LCD
ждать 0.5с

Задача опроса кнопки:
ждать 0.05с
читать кнопку
если нажали
захватить LCD
вывести надпись
отпустить LCD
захватить I2C
прочитать часы
записать в память
отпустить I2C


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Obi
сообщение Oct 19 2006, 17:25
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 262
Регистрация: 18-12-05
Из: Perth, WA
Пользователь №: 12 375



Господа, а где можно почитать про это все дело по подробнее и с самого начала smile.gif ?


--------------------
"We choose to go to the moon in this decade and do the other things, not because they are easy, but because they are hard,"
- John F. Kennedy in September 1962.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 10th July 2025 - 02:34
Рейтинг@Mail.ru


Страница сгенерированна за 0.01368 секунд с 7
ELECTRONIX ©2004-2016