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

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> Прочитать передачу
kovigor
сообщение Aug 2 2011, 11:21
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(micronano @ Aug 2 2011, 13:21) *
kovigor, вы не чувствуете, что ничем не помогли, а просто проконстатировали то, что я и так уже написал? Не можете помочь алгоритмом - не отвечайте, можете - я буду вам очень благодарен!


Я чувствую, что вы не желаете описать вашу проблему человеческим языком. Что вам нужно ? Принимать биты ? Принимайте по прерыванию (если они следуют один за другим не очень быстро. Только учтите, что компилятор при вхождении в обработчик складывает регистры в стек, а это съедает львиную долю быстродействия. Или вам надо сложить биты в слова ? Тогда поможет обычный цифровой автомат. конкретный ответ дается на конкретный вопрос. Или вы думаете, что я могу читать мысли ?
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Aug 2 2011, 11:44
Сообщение #17


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

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Не понятго

Цитата
Сигнал прямоугольный,
меандр , что ли?

Цитата
Просто например бывает ,что вместо сообщения (порядка 60 бит выборки), мне приходят 60 . "1"... (состояние на линии без передачи - "1")


Точки и запятые в фразе расставил я. Но , что такое вместо 60 приходят 60 , я не расшифровал

Зато понятно, что можно спокойно использовать прерывание INTX для принятия посылки


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Aug 2 2011, 11:49
Сообщение #18


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Пишут Вам пишут, что надо дождаться фронта, сдвинуть моменты чтения на полпериода и смело принимать, а Вы так и не хотите... Ну-ну laughing.gif
Go to the top of the page
 
+Quote Post
micronano
сообщение Aug 2 2011, 11:54
Сообщение #19


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 13-10-10
Пользователь №: 60 133



kovigor, да, мне нужно принимать биты..

ILYAUL, а не надо было расставлять точки, там все нормально было!=) Вместо сообщения, в котором "0" и "1" должно быть примерно пополам, мне приходит сообщение из одних только "1".
Меандр - прямоугольный сигнал со скважностью 2. Прямоугольный =НЕ пилообразный, НЕ синусоида и т.д.

Цитата
Зато понятно, что можно спокойно использовать прерывание INTX для принятия посылки

Это что за прерывание? Можно поподробнее, пожалуйста?

_Pasha, я на это уже ответил, что я так уже пробовал! ничего не меняется, абсолютно! К сожалению. Я экспериментировал с задержками как только можно! =(

Сообщение отредактировал micronano - Aug 2 2011, 11:59
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Aug 2 2011, 11:58
Сообщение #20


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

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(micronano @ Aug 2 2011, 15:54) *
ILYAUL, а не надо было расставлять точки, там все нормально было!=) Вместо сообщения, в котором "0" и "1" должно быть примерно пополам, мне приходит сообщение из одних только "1".
Меандр - прямоугольный сигнал со скважностью 2. Прямоугольный =НЕ пилообразный, НЕ синусоида и т.д

Т.е слово импульсный Вам не знакомо, будем знать


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
micronano
сообщение Aug 2 2011, 12:14
Сообщение #21


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 13-10-10
Пользователь №: 60 133



ILYAUL, считайте что хотите.
Чем вам не понравилось слово прямоугольный, не понимаю.

Сообщение отредактировал micronano - Aug 2 2011, 12:17
Go to the top of the page
 
+Quote Post
Marian
сообщение Aug 2 2011, 17:20
Сообщение #22


Частый гость
**

Группа: Участник
Сообщений: 148
Регистрация: 23-02-07
Пользователь №: 25 618



Нарисуйте, как у вас выглядит лог. "1" и лог. "0", это для того чтобы представлять как они кодируются.
Если сигнал медленный, настройте внешнее прерывание на изменение уровня.
В прерывании запускаете таймер и сохраняете (в массив) длительность импульсов.
Если скорости хватает, походу и декодируете, если нет, декодированием занимаетесь уже приняв всю посылку.

Сообщение отредактировал Marian - Aug 2 2011, 17:24
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Aug 2 2011, 17:31
Сообщение #23


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

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(Marian @ Aug 2 2011, 21:20) *
В прерывании запускаете таймер и сохраняете (в массив) длительность импульсов.

Это лишнее

Цитата
Чем вам не понравилось слово прямоугольный, не понимаю.

В электронике есть чёткое определение таких сигналов - импульсный сигнал


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
Marian
сообщение Aug 2 2011, 17:35
Сообщение #24


Частый гость
**

Группа: Участник
Сообщений: 148
Регистрация: 23-02-07
Пользователь №: 25 618



Цитата(ILYAUL @ Aug 2 2011, 20:31) *
Это лишнее


Я предложил рабочий алгоритм, а выкинув его часть он работать не будет.

"Слово из песни не выкинешь"

Сообщение отредактировал Marian - Aug 2 2011, 17:40
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Aug 2 2011, 17:44
Сообщение #25


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

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(Marian @ Aug 2 2011, 21:35) *
А вы что, знаете какая скорость и какая форма сигнала ?

На скорость - вобщем-то наплевать , лишь бы несовпадала с частотой процессора , а форма - прямоугольная. См. начало топика.
Но Вы на верном пути- осталось написать обработчик прерывания, но надо ещё чуть-чуть и поймёте почему это лишнее
Цитата
В прерывании запускаете таймер и сохраняете (в массив) длительность импульсов.


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
Marian
сообщение Aug 2 2011, 18:54
Сообщение #26


Частый гость
**

Группа: Участник
Сообщений: 148
Регистрация: 23-02-07
Пользователь №: 25 618



Цитата(ILYAUL @ Aug 2 2011, 20:44) *
На скорость - вобщем-то наплевать , лишь бы несовпадала с частотой процессора , а форма - прямоугольная. См. начало топика.
Но Вы на верном пути- осталось написать обработчик прерывания, но надо ещё чуть-чуть и поймёте почему это лишнее

Как раз вся загвоздка в скорости.
Скажем так, чтобы принять сигнал с частотой 100 KHz, проц должен работать на частоте от четырех до десяти раз выше.(если писать на ассемблере, чуть пониже)

Если в прерывании не заниматься декодированием, то есть возможность принимать посылку с долее высокой частотой следования импульсов.




Цитата(ILYAUL @ Aug 2 2011, 20:44) *
а форма - прямоугольная.


Такое название мне тоже не нравиться.
Любой цифровой сигнал будет иметь импульсы прямоугольной формы.

Сигнал прямоугольной формы мне представляется(похоже и другим участникам форума) меандр определенной частоты с заполнением столько та процентов.
Все остальное импульсный сигнал.

Цитата(micronano @ Aug 2 2011, 13:36) *
каждое сообщение (порядка 60 бит), таймер запускаю заново по фронту первого бита, т.ч. врятли за 60 бит накапливается ошибка... Тем более что иногда (очень редко) приходит то, что надо!

Вам, в 12 посте подсказали, что необходима синхронизация.

Посмотрите http://ru.wikipedia.org/wiki/%D0%9C%D0%B5%...%BB%D0%BE%D0%B2

Обратите внимание на Манчестерское кодирование.

Сообщение отредактировал Marian - Aug 2 2011, 18:56
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Aug 2 2011, 18:57
Сообщение #27


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

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(Marian @ Aug 2 2011, 22:31) *
Как раз вся загвоздка в скорости.
Скажем так, чтобы принять сигнал с частотой 100 KHz, проц должен работать на частоте от четырех до десяти раз выше.(если писать на ассемблере, чуть пониже)

Всё значительно проще ,чем запускать счётчик и что то считать - в прерывании по INITX - достаточно отслеживать фронты- (т.к. из полезного , что нам сообщил топикстартер , это то что начальный уровень лог. 1) - поэтому ждём прерывание по спаду, в прерывании записываем в память zero , и переключаем на прерывание по фронту , получили пишем лог 1 , переключаем на спад фронта и т.д. - Скорость == количеству команд используемых в обработке прерывания , естественно на asm будет выше , т.к. в стек загонять ничего не требуется, если идёт только прием данных.

Но всё это при условии практически идеальной линии - или откуда там этот сигнал поступает


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
Marian
сообщение Aug 2 2011, 19:02
Сообщение #28


Частый гость
**

Группа: Участник
Сообщений: 148
Регистрация: 23-02-07
Пользователь №: 25 618



Цитата(ILYAUL @ Aug 2 2011, 21:57) *
Всё значительно проще ,чем запускать счётчик и что то считать - в прерывании по INITX - достаточно отслеживать фронты- (т.к. из полезного , что нам сообщил топикстартер , это то что начальный уровень лог. 1) - поэтому ждём прерывание по спаду, в прерывании записываем в память zero , и переключаем на прерывание по фронту , получили пишем лог 1 , переключаем на спад фронта и т.д. - Скорость == количеству команд используемых в обработке прерывания , естественно на asm будет выше , т.к. в стек загонять ничего не требуется, если идёт только прием данных.

Этот вариант без кодирования исходного сигнала, даже сигнал пультов радио аппаратуры кодированный.
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Aug 2 2011, 19:05
Сообщение #29


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

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(Marian @ Aug 2 2011, 23:02) *
Этот вариант без кодирования исходного сигнала, даже сигнал пультов радио аппаратуры кодированный.

Кодированный не кодированный - об этом история умалчивает, главное, что прямоугольный , прерывания будут работать biggrin.gif

И ещё настораживает вот эта фраза из кода
Цитата
pause after telegramm


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
Marian
сообщение Aug 2 2011, 19:14
Сообщение #30


Частый гость
**

Группа: Участник
Сообщений: 148
Регистрация: 23-02-07
Пользователь №: 25 618



Цитата(ILYAUL @ Aug 2 2011, 21:57) *
Скорость == количеству команд используемых в обработке прерывания

Это не соответствует действительности.
Скорее так :
"Скорость ==" частота проца делить на "количеству команд используемых в обработке прерывания "
Чем меньше команд в прерывании тем выше скорость.

Сообщение отредактировал Marian - Aug 2 2011, 19:16
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 5th July 2025 - 03:42
Рейтинг@Mail.ru


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