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

 
 
> Как бы выкрутится из такого поожения?
Pyku_He_oTTyda
сообщение Jun 12 2007, 18:30
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 751
Регистрация: 4-08-05
Из: Великие Луки
Пользователь №: 7 360



Постораюсь ясно изложить мысль:
МК (мега8) занимается управлением камерой по LANCпротоколу (тот же самый UART со стороны камеры, но с открытым коллектором ), со стороны МК отслеживаем старт-биты и подаем команды притягиванием линии к земле. Передается фреймами по 8 байт, во время передачи команды (одно и то же повторяем несколько фреймов - может затянутся на насколько секунд) нельзя пропускать фреймы.
То есть МК занят, на остальную работу остается порядка 9милисек (промежуток между фреймами)
Все бы ничего, но параллельно надо принимать другую команду, длительностью порядка 44 милис.
Есть идея по фронту внешней команды запускать capture timer на время 45 мс и после оценивать состояние регистра ICR.
Покритикуйте идею.


--------------------
Андрей Смирнов
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Pyku_He_oTTyda
сообщение Jun 13 2007, 03:38
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 751
Регистрация: 4-08-05
Из: Великие Луки
Пользователь №: 7 360



то есть вы предлагаете вплотную занятся приемом "длинной "команды как основной, а УАРТ обрабатывать в фоновом режиме по прерываниям?
Длительность длинная - 104мкс (9600).


--------------------
Андрей Смирнов
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Jun 13 2007, 06:21
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(Pyku_He_oTTyda @ Jun 13 2007, 06:38) *
то есть вы предлагаете вплотную занятся приемом "длинной "команды как основной, а УАРТ обрабатывать в фоновом режиме по прерываниям?
Длительность длинная - 104мкс (9600).

Я ничего не предлагаю, так как не знаю в точности распределения ресурсов.
Мои подходы в программировании таковы, что в основном цикле контроллер должен крутиться без напряга по времени, а вся основная поддержка интерфейсов реализуется в фоне по прерываниям.

Я всего лишь утверждаю, что на микроконтроллере АВР вполне реализуем вариант двух программных УАРТов, работающих в фоновом режиме со скоростью 9600. Во всяком случае, один на 19200 получился просто, джиттер меньше 5 процентов, экстраполируя на два УАРТа 9600, я предполагаю вполне хорошие результаты.

Кстати, а что, только прием команд? Тогда задача еще проще - в прерываниях не нужно анализировать режим порта.
Да, еще по поводу использования логики захвата. Действительно, можно упростить фоновый алгоритм - писать в буфер содержимое таймера, когда входной сигнал поменял полярность, а потом анализировать. Я так делал для приема посылок по радио, очень прозрачно и удобно.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Pyku_He_oTTyda   Как бы выкрутится из такого поожения?   Jun 12 2007, 18:30
- - bodja74   Непонятно ,а что мешает МК принимать данные по УС...   Jun 12 2007, 18:55
- - Pyku_He_oTTyda   Прерывание УСАРТ возникает при окончании приема, а...   Jun 12 2007, 18:58
- - bodja74   Тогда старт бит ловим по INT и в обработчике преры...   Jun 12 2007, 19:15
- - Dog Pawlowa   Цитата(Pyku_He_oTTyda @ Jun 12 2007, 21:3...   Jun 12 2007, 19:59
- - oran-be   Если добавить примерно 1$ можно мегу 8 замени...   Jun 13 2007, 05:45
- - Pyku_He_oTTyda   а зачем мне вообще 2 нардварных УАРТА?   Jun 13 2007, 06:09
- - arttab   можно попробовать делать опрос что на линии по пре...   Jun 13 2007, 08:17
- - Pyku_He_oTTyda   В первом посте неправильно выразился, "другая...   Jun 13 2007, 12:09
|- - Dog Pawlowa   Цитата(Pyku_He_oTTyda @ Jun 13 2007, 15:0...   Jun 13 2007, 12:21
- - =GM=   Цитата(Pyku_He_oTTyda @ Jun 12 2007, 17:3...   Jun 13 2007, 13:39
- - Pyku_He_oTTyda   После посылки байта остается спать 250мкс (LANC та...   Jun 16 2007, 07:36
- - ReAl   Цитата(Pyku_He_oTTyda @ Jun 16 2007, 09:3...   Jun 16 2007, 08:08


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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 19:45
Рейтинг@Mail.ru


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