Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 06.07.2008, 01:33  
l-e-o-n-a-r-d-o
Вид на жительство
 
Регистрация: 17.07.2007
Сообщений: 384
Сказал спасибо: 65
Сказали Спасибо 156 раз(а) в 84 сообщении(ях)
l-e-o-n-a-r-d-o на пути к лучшему
По умолчанию Управление по расписанию

Не знал где разместить эту тему, тк это часть системы безопасности, хотя вопрос больше относится к програмной части... Проэкт на АВР.

Вобщем к делу. Мне надо организовать такой прибор, который делает чтото в соответсвии с рассписанием, которое нужно менять с компа через сом например. Вобщем контроллер должен посылать команды на ножки в если в неком списке на это время это действие запланировано. Но проблема в том, что рассписание должно быть расчитано на неделю, а то и больше, кроме того. в основное время контроллер занят другими делами.
Я думаю что надо сделать так: добавить еще контроллер, который будет работать с внешней микросхемой- часами+ микросхемой памяти, в которой и содержится даный список, либо использовать внутреннюю память, но сколько ее надо? этот контроллер при совпадении событеем из списка с временем от часов будет давать прерывание на основной контроллер, с кодом действия для выполнения. Как организовать доступ к этой памяти? Какой контроллер (с внутренней памятью) с этим справится? Может у вас какието другие идеи? Что думаете?


Еще раз в кратце: Есть контроллер, который занят своими делами. Есть рассписание, по которому этому контрллнру надо действовать (по времени). Рассписание нужно иметь возможность менять с компа.
Как это все организовать? Интересует сам принцип работы. А так же структурная схема устройства.

Заранее всем благодарен.
Реклама:
l-e-o-n-a-r-d-o вне форума  
Непрочитано 06.07.2008, 01:45  
Churchill
Прописка
 
Регистрация: 23.03.2008
Сообщений: 121
Сказал спасибо: 4
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
Churchill на пути к лучшему
По умолчанию

Я бы присобачил и2с таймер pch8583, в который заливали бы нужное время в будильник, при наступлении события ножка часов дергала бы пин авр и тот записывал бы следующее время для срабатывания. Что-то типа такого.
Churchill вне форума  
Непрочитано 06.07.2008, 01:54  
l-e-o-n-a-r-d-o
Вид на жительство
 
Регистрация: 17.07.2007
Сообщений: 384
Сказал спасибо: 65
Сказали Спасибо 156 раз(а) в 84 сообщении(ях)
l-e-o-n-a-r-d-o на пути к лучшему
По умолчанию

а список где хранить?
l-e-o-n-a-r-d-o вне форума  
Непрочитано 06.07.2008, 02:04  
alexgap
Гражданин KAZUS.RU
 
Аватар для alexgap
 
Регистрация: 08.07.2006
Сообщений: 886
Сказал спасибо: 119
Сказали Спасибо 1,110 раз(а) в 177 сообщении(ях)
alexgap на пути к лучшему
По умолчанию

А список сохраняйте в энергонезависимой памяти (EEPROM), которая имеется в достаточном количестве в АВР микроконтроллере. Например, ATmega8 имеет 512 байт ЕЕPROM на борту. Этого вполне достаточно, чтобы сохранить расписание включения/выключения обьекта на неделю с трехминутной гранулярностью. Например, если отталкиваться от десятиминутной гранулярности, то вам нужно 126 байт (7 дней * 24 часов в сутки * 6 десятиминуток в часе / 8 бит в байте = 126 байт).
alexgap вне форума  
Непрочитано 06.07.2008, 02:40  
l-e-o-n-a-r-d-o
Вид на жительство
 
Регистрация: 17.07.2007
Сообщений: 384
Сказал спасибо: 65
Сказали Спасибо 156 раз(а) в 84 сообщении(ях)
l-e-o-n-a-r-d-o на пути к лучшему
По умолчанию

дело в том, что действие не одно, их примерно 10 разных, для каждого нужно: врямя(число(день, месяц, год) время(часы мин сек) код операции) итого запись:
06.07.08.01.34.50.01 это 14 байт. В 128 байтную память 9 записей поместится... а мне надо намного больше. Может флешку использовать? И на комп оперативно переносится!
l-e-o-n-a-r-d-o вне форума  
Непрочитано 06.07.2008, 10:12  
sanitar249
Почётный гражданин KAZUS.RU
 
Аватар для sanitar249
 
Регистрация: 19.01.2007
Сообщений: 1,747
Сказал спасибо: 2
Сказали Спасибо 46 раз(а) в 35 сообщении(ях)
sanitar249 на пути к лучшему
По умолчанию

Сообщение от l-e-o-n-a-r-d-o
дело в том, что действие не одно, их примерно 10 разных, для каждого нужно: врямя(число(день, месяц, год) время(часы мин сек) код операции) итого запись:
06.07.08.01.34.50.01 это 14 байт. В 128 байтную память 9 записей поместится... а мне надо намного больше. Может флешку использовать? И на комп оперативно переносится!
Если ЧРВ будут на И2С, то логичнее всего на нее повесить и память, например 24СХХХ
Удачи!
__________________
Я, думаю, нужно подумать...
sanitar249 вне форума  
Непрочитано 06.07.2008, 10:57  
Churchill
Прописка
 
Регистрация: 23.03.2008
Сообщений: 121
Сказал спасибо: 4
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
Churchill на пути к лучшему
По умолчанию

флэшку использовать накладно программно, а вот раз ставим и2ц таймер, то логично использовать такую же еепром. Тока вот нюанс - адреса у них совпадают, так что придется у таймера ногу А0 цеплять на +5 В, а не на 0. И не забывать, что вывод INT - открытый коллектор и ему нужна подтяжка. И использовать лучше не программный, а аппаратный и2ц с прерыванием - если время работы этой связки критично
Churchill вне форума  
Непрочитано 06.07.2008, 16:09  
alexgap
Гражданин KAZUS.RU
 
Аватар для alexgap
 
Регистрация: 08.07.2006
Сообщений: 886
Сказал спасибо: 119
Сказали Спасибо 1,110 раз(а) в 177 сообщении(ях)
alexgap на пути к лучшему
По умолчанию

Цитата:
Дело в том, что действие не одно, их примерно 10 разных, для каждого нужно: врямя(число(день, месяц, год) время(часы мин сек) код операции) итого запись:
06.07.08.01.34.50.01 это 14 байт. В 128 байтную память 9 записей поместится...
Уф! 14 байт это сильно круто. Можно то же самое поместить в 4 байта. Тогда в память поместится больше записей. Вот пример: для представления времени используйте количество секунд начиная, например, с 2000.01.01. Только для этого потребуется загнать календарные правила в прошивку, но это не сильно сложно, просто учитывать высокосные года, кол-во дней в месяце и т.д. В сети можете найти код, который это делает, самый яркий пример, реализация Си функций mktime и gmtime. Если у вас Си компилятор поддерживает эти функции, то будет достаточно ими воспользоваться (вызвать их). Если нет, то смотрите сюда:

Реализация:
http://www.raspberryginger.com/jbail...8c-source.html
http://www.raspberryginger.com/jbail...8c-source.html

Документация:
http://www.cplusplus.com/reference/c...me/gmtime.html
http://www.cplusplus.com/reference/c...me/mktime.html
alexgap вне форума  
Непрочитано 06.07.2008, 21:48  
l-e-o-n-a-r-d-o
Вид на жительство
 
Регистрация: 17.07.2007
Сообщений: 384
Сказал спасибо: 65
Сказали Спасибо 156 раз(а) в 84 сообщении(ях)
l-e-o-n-a-r-d-o на пути к лучшему
По умолчанию

я тут подумал, что впринципе действия будут вполне периодичны днями, это значительно облегчит мне жизнь(всмысле алгоритм). Ладно, задача чуть меняется(упрощается): в сутки есть перечень задач по расписанию, задач около 10-20(предположим максимум 99), но опять таки по времени и с возможностью изменения с компа. Тогда, вполне логично отсчитывать секунды, или десятки секунд. А преобразование идет на самом компе в качестве пользовательского интерфейса(зачем контроллер непрягать)) ) Положим роль планировщика отдельному контроллеру, который будет ити по внешним часам, и 5-6ю пинами конектится к основному, и будет в нужное время вызывать прерывание основного.

Критикуйте. Есть пример использования по и2ц с часами реального времени? (я с и2ц еще не работал)
l-e-o-n-a-r-d-o вне форума  
Непрочитано 06.07.2008, 22:12  
sanitar249
Почётный гражданин KAZUS.RU
 
Аватар для sanitar249
 
Регистрация: 19.01.2007
Сообщений: 1,747
Сказал спасибо: 2
Сказали Спасибо 46 раз(а) в 35 сообщении(ях)
sanitar249 на пути к лучшему
По умолчанию

Сообщение от l-e-o-n-a-r-d-o

Критикуйте. Есть пример использования по и2ц с часами реального времени? (я с и2ц еще не работал)
Примеров реализации шины I2C для различных МК на различных языках, великое множество, в основе, все-равно лежат низкоуровневые процедуры работы с шиной(универсальные для всех устройств), Освоив их, Вы с легкостью интегрируете на шину любое устройство.
ЗЫ все ищется в сети, на "раз"
На конкретном МК не зацикливайтесь, алгоритм общий...
ЗЗЫ и на этом форуме, по этой тематике, полно информации.
Удачи!
__________________
Я, думаю, нужно подумать...
sanitar249 вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ИК управление vtv_terra Автоматика и аппаратура связи 7 28.07.2009 10:52
Управление индикатором. day177 Микроконтроллеры, АЦП, память и т.д 14 13.02.2008 11:25
Программное управление alkapone Источники питания и свет 2 10.02.2008 17:50
Управление LM317? maxNTF Источники питания и свет 2 12.11.2007 18:14
кнопочное управление БП lafa Источники питания и свет 1 04.12.2006 08:57


Часовой пояс GMT +4, время: 08:09.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot