|
Как правильно организовать архитектуру программы?, Архитектура для часов |
|
|
|
Aug 3 2015, 17:50
|
Группа: Участник
Сообщений: 9
Регистрация: 28-07-15
Пользователь №: 87 751

|
Как правильно организовать архитектуру программы для часов? Часы должны показывать время дату и температуру, по очереди с определённой задержкой. Как организовать настройку времени? Контроллер: Mega8; IDE: Atmel Studio.
|
|
|
|
|
 |
Ответов
|
Aug 21 2015, 13:16
|
Знающий
   
Группа: Свой
Сообщений: 708
Регистрация: 8-05-11
Из: Чг
Пользователь №: 64 861

|
пы сы что- то не могу из ящика, дублирую тут не, самописанный. Идея очень простая - 8 функций, например прием и обработка байта уарт отправка 8 байт через уарт посылка данных на дисплей ... 8 - потому что 8 бит в char переменной zadania, диспетчер (он только и есть в теле, все остальное - в функциях и программах обработки прерываний по таймерам) постоянно крутиться в main(), вычисляет задачу из переменной zadania с максимальным приоритетом (это нетрудно - чем выше бит выставлен в 1 - тем приоритетнее задача) и вызывает соотв. функцию. Чтобы задачи с малым приоритетом не завешивали, все функции написаны так, что они за вызов делают (возможно) не всю работу, занимая не больше отведенного им времени, и возвращают управление диспетчеру, не выставляя свой бит в нуль - если функция не завершила работу. Если более высокоприоритетных задач не появилось, то менее приоритетные задачи продолжают, пока не сделают что нужно и не выставят свой бит в 0. Ну а биты функций выставляет либо таймер(это для ацп, актуализации реле/мосфитов (выходов мк), либо прерывание по получению байта uart, либо прерывание внешнего прерывания. Вот так они и крутятся, не мешая друг другу, в полном соответсвии с оригинальной идеей. Сам я ее читал не на сайте, а в журнале хакер (бумажном) году так еще в 2006-2007, соответсвенно потом его посеял и делал по памяти. Но потом, по прочтении ряда книжек по эмбеддингу оказалось, что все не противоречит и высокой науке тоже.
|
|
|
|
Сообщений в этой теме
Maxi_Man Как правильно организовать архитектуру программы? Aug 3 2015, 17:50 RabidRabbit Архитектура программная, по-моему, сильно зависит ... Aug 4 2015, 06:22 kolobok0 Цитата(Maxi_Man @ Aug 3 2015, 20:50) Как ... Aug 4 2015, 11:00 CrimsonPig Цитата(Maxi_Man @ Aug 3 2015, 18:50) Как ... Aug 4 2015, 11:37 mempfis_ Цитата(Maxi_Man @ Aug 3 2015, 20:50) Как ... Aug 4 2015, 12:44 Maxi_Man Цитата(mempfis_ @ Aug 4 2015, 15:44) Дела... Aug 4 2015, 14:56  Jury093 Цитата(Maxi_Man @ Aug 4 2015, 17:56) Не м... Aug 4 2015, 19:07   demiurg1978 1 - Модульность программ.
Опрос кнопок.
Вывод инфо... Aug 5 2015, 07:25  mempfis_ Цитата(Maxi_Man @ Aug 4 2015, 17:56) Не м... Aug 6 2015, 08:09   Maxi_Man Цитата(mempfis_ @ Aug 6 2015, 11:09) Я ду... Aug 6 2015, 10:18    mempfis_ Цитата(Maxi_Man @ Aug 6 2015, 13:18) Спас... Aug 6 2015, 11:06 Onkel порядок гуглим "AVR. Учебный курс. Операционн... Aug 7 2015, 05:41 demiurg1978 Крайне вредный совет и цикл статей. В этой "о... Aug 7 2015, 10:11  Onkel Цитата(demiurg1978 @ Aug 7 2015, 13:11) К... Aug 21 2015, 06:37   demiurg1978 Конкретика? Пожалуйста: очередь таймеров, которая ... Aug 21 2015, 07:30    Onkel Цитата(demiurg1978 @ Aug 21 2015, 10:30) ... Aug 21 2015, 07:59     demiurg1978 Представьте, что функции накидали задач в очередь.... Aug 21 2015, 08:06      Onkel Цитата(demiurg1978 @ Aug 21 2015, 11:06) ... Aug 21 2015, 08:14       demiurg1978 Не торопитесь. Давайте продуктивно обсудим.
Во-пе... Aug 21 2015, 08:27        Onkel Цитата(demiurg1978 @ Aug 21 2015, 11:27) ... Aug 21 2015, 09:03         demiurg1978 Цитата(Onkel @ Aug 21 2015, 16:03) ...
В ... Aug 21 2015, 09:31          Onkel Цитата(demiurg1978 @ Aug 21 2015, 12:31) ... Aug 21 2015, 10:01 demiurg1978 Мои правила написания программ:
Весь набор правил... Aug 21 2015, 14:35 sigmaN Конечно от конкретной задачи таймера это делеко, н... Aug 30 2015, 05:50 Onkel Цитата(sigmaN @ Aug 30 2015, 08:50) Конеч... Sep 4 2015, 09:00  NicholasR Цитата(Onkel @ Sep 4 2015, 13:00) вряд ли... Sep 28 2015, 05:43   Onkel Цитата(NicholasR @ Sep 28 2015, 08:43) По... Sep 29 2015, 22:52    demiurg1978 Цитата(Onkel @ Sep 30 2015, 05:52) (на ос... Sep 30 2015, 04:02     Onkel Цитата(demiurg1978 @ Sep 30 2015, 07:02) ... Oct 1 2015, 20:56    NicholasR Цитата(Onkel @ Sep 30 2015, 02:52) сейчас... Sep 30 2015, 05:55
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|