Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
Как совместить динамическую индикацию и обмен с датчиком (опрос с задержкой...(+)
Отправлено
Aleksei
29 октября 2007 г. 16:32
Текст заголовка сообщения полностью:
Как совместить динамическую индикацию и обмен с датчиком (опрос с задержкой в 1сек) без моргания
Составить ответ
|
Вернуться на конференцию
Ответы
Использовать прерывания от таймера (+)
—
cm
(29.10.2007 19:28:1
194.187.109.118
, 475 байт)
Считаю изящным решением задействовать для 1-wire usart.
—
Гудвин
(29.10.2007 18:43:6
89.232.124.29
,
пустое
)
что за датчик?
—
werewolf
(29.10.2007 16:47:8
212.8.34.66
,
пустое
)
DS18B20
—
Aleksei
(29.10.2007 16:56:48
80.252.150.245
,
пустое
)
Сразу бы про этот датчик... Есть у меня часики с этим датчиком... Динамика и ничё не мерцает... Если хотите, то расскажу...
—
zlogic
(29.10.2007 17:20:57
216.117.134.180
,
пустое
)
Очень желательно на С
—
Aleksei
(29.10.2007 17:26:17
80.252.150.245
,
пустое
)
На кой тут хрен Си?
—
zlogic
(29.10.2007 17:45:43
216.117.134.180
, 539 байт)
Да, забыл сказать главное... Читаем результат из датчика по прошествии (от выдачи команды на преобразование) секунды... То есть динамика вертится, датчик преобразовывает себе, а мы его читаем раз в секунду... разделение всеего протокола на части сделано для того, чтобы медленный 1-ware не тормознул динамику...
—
zlogic
(29.10.2007 18:05:6
216.117.134.180
,
пустое
)
это подтверждение моего метода - у zlogic то же самое, но в профиль ;))
—
werewolf
(29.10.2007 17:58:24
212.8.34.66
,
пустое
)
подобную задачу решил так: малые задержки обрабатывал процом, большие - сотни мкс - таймером, выбрав квант времени отсчета, программные счетчики для индикации и датчика, или флаги. счетчики или флаги подготавливаются в теле проги, анализ и выполнение - в прерывании. процесс становится синхронным
—
werewolf
(29.10.2007 17:05:55
212.8.34.66
,
пустое
)
Ну да, все вроде так таймеры подготавливаются в процессе инициализации, а о...(+)
—
Aleksei
(29.10.2007 17:10:28
80.252.150.245
, 187 байт)
не совсем. таймер один, он перезагружается по прерыванию, в кот. выполняется анализ прог. счетчиков и идет манипуляция с портами - выброс данных, прием-передача на ДС-ку. начни с прорисовки диаграмм и выбора кванта отсчета
—
werewolf
(29.10.2007 17:22:31
212.8.34.66
,
пустое
)
Квант выбрал, динамику перевел основной код, всеравно с частотой этого кван...(+)
—
Aleksei
(29.10.2007 17:31:13
80.252.150.245
, 182 байт)
а обработчики? а тело проги? я дал идею - все остальное (шишки тоже) ваши ;)
—
werewolf
(29.10.2007 17:54:55
212.8.34.66
,
пустое
)
Используя прерывания, видимо. Они есть?
—
Vladimir Ljaschko
(29.10.2007 16:37:32
87.186.12.254
,
пустое
)
Есть, но падла промаргивает как раз с частотой 1сек
—
Aleksei
(29.10.2007 16:41:17
80.252.150.245
,
пустое
)
опрашивать датчик часто - с частотой развертки индикатора, но "лишние" опросы заменить задержкой = времени опроса датчика...
—
basilmak
(29.10.2007 16:55:50
82.142.173.231
,
пустое
)
Вот это похоже на правду, данные всеравно не меняются же в течении этог вре...(+)
—
Aleksei
(29.10.2007 17:05:52
80.252.150.245
, 185 байт)
Это значит посылать постоянно в него команды на формирования данных в течен...(+)
—
Aleksei
(29.10.2007 16:59:56
80.252.150.245
, 182 байт)
это значит, что нада подумать головой... в кино вон 24 кадра - моргать должно, просто специально закрывают поток чаще - и моргание уменьшается... Прорисуй времянку выталкивания на индикатор, пойми что всё время МК делать просто нечего, делай во время когда делать нечего что-нить полезное и т.д. и т.п. Там нет ничего сложного и наукоемкого - один здравый смысл - и не нада будет никаких прерываний, таймеров и т.п.
—
basilmak
(29.10.2007 17:07:45
82.142.173.231
,
пустое
)
Спасиб, блин просто зацыклился, быват, самое сложное в очевидном!
—
Aleksei
(29.10.2007 17:13:25
80.252.150.245
,
пустое
)
Кроме одного слова ничего не понял :)
—
Vladimir Ljaschko
(29.10.2007 16:43:49
87.186.12.254
,
пустое
)
В оном прерывании по Т0 работает индикация, в другом прерывании по Т1=СА1(1...(+)
—
Aleksei
(29.10.2007 16:47:9
80.252.150.245
, 184 байт)
Если датчик позволяет, обмениваться с ним в фоновой процессе. если же нет, ...(+)
—
vinogradov aleksei
(29.10.2007 16:53:23
92.112.10.202
, 228 байт)
Ну да в фоновом, т.е. пака он накапливает данные (1сек) можно работать, но ...(+)
—
Aleksei
(29.10.2007 16:56:23
80.252.150.245
, 215 байт)
по эргономике промаргивание это и не всегда плохо - оператор видит что прибор живет и обновляет информацию...
—
basilmak
(29.10.2007 17:10:50
82.142.173.231
,
пустое
)
Да это здорово, не, серьезно, завтра закзчику так и скажу, скажу авторитеты...(+)
—
Aleksei
(29.10.2007 17:17:44
80.252.150.245
, 189 байт)
Она и будет моргать (+)
—
vinogradov aleksei
(29.10.2007 16:59:27
92.112.10.202
, 208 байт)
Как их их разрешить внутри asm("sei")?
—
Aleksei
(29.10.2007 17:03:21
80.252.150.245
,
пустое
)
Так я и говорю. Разрешить прерывания просто так не выйдет, т.к. будет время...(+)
—
vinogradov aleksei
(29.10.2007 17:07:50
92.112.10.202
, 267 байт)
Так уж проще некуда Temp=UDR;
—
Aleksei
(29.10.2007 17:15:4
80.252.150.245
,
пустое
)
Вы опять не поняли сути. У DS1820 довольно строгая диаграмма (см. даташит)....(+)
—
vinogradov aleksei
(29.10.2007 17:17:40
92.112.10.202
, 349 байт)
Да у меня и библиотеки никакой нет я с через DS2480 работаю с USARTом.
—
Aleksei
(29.10.2007 17:20:28
80.252.150.245
,
пустое
)
Ладно. Мы говорим на разных языках ...
—
vinogradov aleksei
(29.10.2007 17:22:14
92.112.10.202
,
пустое
)
Легко я прочитал как не легко, теперь все понял.Мы с вами не говорим, а чит...(+)
—
Aleksei
(29.10.2007 17:33:41
80.252.150.245
, 190 байт)
Суть в том, чтобы не прерывать обмен, когда папало ...
—
vinogradov aleksei
(29.10.2007 17:40:33
92.112.10.202
,
пустое
)
телепаты в отпуске. А подмаргивать может и например из-за просадки питания при опросе датчика
—
koyodza
(29.10.2007 16:57:47
195.214.197.203
,
пустое
)
Ответ: Сделать вложенные прерывания.
—
Artem-1.6E-19
(29.10.2007 16:52:23
92.113.31.226
,
пустое
)
Слишком сложно. К упрощению надо стремиться :)
—
vinogradov aleksei
(29.10.2007 16:57:3
92.112.10.202
,
пустое
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 90:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru