|
|
|
|
Как в автомобильных приемниках усилители работают? Правильно, по мостовой схеме. Напряжение больше в 2 раза, мощность в 4. Тоже и здесь.  |
|
|
А,ну теперь понятно |
|
|
Люди, ну не нужно навешивать на скромный таймер кучу функций! Потребуется - потом прикрутим. Пусть будет пока 1 выход и контроль батареек на глаз. Не нужно ничего лишнего поначалу! Сделаем базовый вариант так, чтоб всем понятно было. А потом уже каждый сам добавит "прибамбасы" на свой вкус. |
|
|
Так сейчас же никто и не навешивает,просто выдвигаются варианты дальнейшего усовершенствования.Может кому схемка в протеусе нужна,гуру конечно ее в минуту построят, а начинающим может и пригодится 72587.dsn |
|
|
R2-R8 возможно великоваты. За R9 спасибо - я тоже так делаю. в кокой проге нарисовано ? |
|
|
Начинающие очень признательны за схемку в протеусе=) Прежде чем прогу писать нужно подумать че там вообще писать-то. Взять с ходу не получилось, слишком много всего увязать нужно. Да и незнаю я как некоторые вещи реализовывать, например антидребезг. Если эта ветка для ее участников ликбез по Си, то для меня она ликбез по МК.Так что глупым вопросам просьба не удивляться=) Итак, что у нас есть? У нас есть 3 состояния: сон, установка времени и обратный отсчет. Переходы из одного состояния в другое могут быть следующие: 1. "сон"-"установка времени" 2. "установка времени"-"сон" 3. "установка времени"-"обратный отсчет" 4. "обратный отсчет"-"сон" Ничего не забыл? Из режима "сон" мы можем перейти в режим "установка времени", но не можем переходить в режим "обратный отсчет" поскольку наш девайс не инициализирован. Из режима "установка времени" мы можем перейти в оба режима. Если заветную кнопочку ПУСК так и не нажмут, девайс заснет. А если нажмут - начнется обратный отсчет. Из режима "обратный отсчет" мы можем перейти только в режим "сон". Поскольку досрочное прекращение этого режима приведет к сну рАвно как и естественное завершение. Теперь нужно разбить всю задачу на несколько основных частей. Затем постепенно детализировать до простейших действий. Думаю что для реализации поставленной задачи нам потребуются флаги, которые будут отображать текущий режим. Например такие: SF- Sleep Flag флаг состояния "сон" SM - Setup Mode - флаг состояния "установка времени" CdM - Countdown Mode - флаг состояния "обратный отсчет" Итак: Режим сон. При включении питания устанавливаем флаг SFравным единице. Входим в бесконечный цикл. Функция перехода в режим сон будет выглядеть примерно так: void Sleep (void) { ЕСЛИ SF==1 { ТО инициализировать порты стартовыми значениями инициализировать переменные подать команду sleep } } То, что написано в фигурных скобках, является словесным описанием. Давайте сначала составим такие вот словесные описания функций, соотвествующих нашим возможным состояниям. Затем эти словесные выражения детализируем более подробно. Фраза "инициализировать порты" в нашем случае подразумевает несколько действий. Функций у нас как минимум должно получиться столько же сколько состояний. Возможно и больше, думаю будет полезно между выходом из сна и установкой времени вставить такую вещь как ПРОСНУТЬСЯ. Там можно сбросить флажек сна, подготовить порты к состоянию "установка". А может лучше и без нее... Но как минимум у нас должны быть еше функции SetUp( ) и Countdown( ) И в них должно быть описание того, что они делают. По мере увязки этих задач между собой, возможно в них будут добавляться дополнительные действия. Времени дописать сейчас нет. |
|
|
Ликбез по Си в соотв топике. |
|
|
Maksim_86, рассказывайте дальше. Это многим пригодится. Ещё хотелось бы применить switch-технологию при составлении графа и написании кода. Возможно, что лучше будет использовать не флаги, а специально выделенную переменную - "переменную состояния". По её значению можно судить о том, в каком состоянии находится устройство в данный момент. Определив значения входных переменных, вычисляется следующее состояние автомата. Общий принцип switch-технологии, рекомендация из книги А.А. Шалыто: Состояние - независимость от "глубокой предыстории" - система взаимосвязанных графов переходов - многозначное кодирование - конструкция switch. Maksim_86: Ничего не забыл? А как насчёт окончания выдержки и выдачи сигнала?  |
|
|
Вот примерно так может выглядеть граф в первом приближении (см. аттач) 
|
|
|
у IAR.com есть такой инструмент "Вижуал стэйт" - рисуешь такие графы и получаеш рабочий код на выходе. |
|
|
|
|