Перейти к содержанию
    

Это не соответствует действительности.

Скорее так :

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

Конечно, конечно

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Что тут не понятного, пауза после посылки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что тут не понятного, пауза после посылки.

Там слово телеграмма - а это накладывает определённые параметры на протокол передачи и и обычно это USART

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Посмотрите Отрисовка сигнала.

Создавалась для отрисовки сигнала пультов, отрисует и цифровой сигнал, если подойдет по скорости,

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

Изменено пользователем Marian

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Но огромное количество ошибок самого разного плана: сдвиг, чтение 1 вместо 0, чтение 0 вместо 1

На всякий случай вспомнил бы о картинках из описания к микросхеме типа AVR *. Которые в разделе про уарт. В смысле асинхронный. Которые переопубликовывать вручную уже от своего имени представляется нецелесообразным.

Или много букв про не понял что здесь пишут.

 

* особенно когда даже название раздела выбрано...

Изменено пользователем нечитатель

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Посмотрите Отрисовка сигнала.

Создавалась для отрисовки сигнала пультов, отрисует и цифровой сигнал, если подойдет по скорости,

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

А почему бы и нет , положите вот сюда:

http://electronix.ru/forum/index.php?showtopic=10934

Вдруг и в правду кому-то понадобится , а по поводу этого топика , при таком "количестве "полезной" информации от топикстартера, мы можем только гадать

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

каждое сообщение (порядка 60 бит)

Похоже, Вы мучаете интерфейс какой-нить микросхемы радио управления.

 

Есть простой способ - используете прерывание capture и складываете отсчеты таймера в буфер. Индекс буфера обнуляется при отсутствии фронтов в течение определенного времени.

Потом, пройдясь по буферу с начала до конца, можно спокойно проанализировать, что же там передавалось.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Marian, ILYAUL, спасибо.

Попробую сделать на прерываниях по фронту/спаду и записью длительности...

 

Dog Pawlowa, нет, это не интерфейс какой-нить микросхемы радио управления. =)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ILYAUL, считайте что хотите.

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

Наверное тем, что когда речь о "0" и "1" или о протоколе, они все прямоугольные... Это не информативно.

Надо знать как передается эти "0" и "1". Это может быть просто уровень, это может быть скважность, это может быть период(частота), это может быть что-то еще. Вариантов там воз и маленькая тележка.

И вообще, что Вы знаете о сигнале кроме того, что он прямоугольный?

ЗЫ. А вообще, самый разумный был совет - используйте запоминающий осциллограф или логический анализатор и внимательно рассмотрите сам сигнал. Пока половина советов тут сводилась к попытке сделать простейший лог. анализатор подручными средствами...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть простой способ - используете прерывание capture и складываете отсчеты таймера в буфер.

 

Вроде capture работает по фронту импульса.

Измерить длительность лог."0" так не получится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вроде capture работает по фронту импульса.

Работает по обоим фронтам (какой укажешь и можно менять по ходу дела) и по результату компаратора. Измерить длительность нуля - очень просто. Ловишь падающий, меняешь в прерывании каптура на нарастающий и запоминаешь текущее. В следующем прерывании вычитаешь текущее от запомненного = измерили.

Плюс можно компарами ставить ограничения на допустимые пределы длительности нуля/импульса.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

....и запоминаешь текущее. В следующем прерывании вычитаешь текущее от запомненного = измерили.

А надо ли ? По условию задания ему нужно только

Кто-нибудь может подсказать как прочитать передачу некоего интерфейса

К тому же

Известна его его скорость и структура

Насчёт длительности импульсов ничего не сказано. И даже если , что-то считать , то только не в прерывании. К тому же по каждому прерыванию , можно просто перезапускать счётчик, предворительно считав предыдущие данные, которые можно потом сохранить выйдя из прерывания. И считать полученные данные до следующего прерывания.

Но неизвестны ни скорость передачи ни структура сигнала- не озвучены. А так можно было прикинуть программу обработки. Но и проц не известен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

как прочитать передачу некоего интерфейса?

#include <avr/io.h>

.

.

.

Глупы ошибки это да... =)

Такие вещи и на СИ! прям садомазо какоето :biggrin:

сорри за офтоп

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В документации на любой микроконтроллер AVR (раз уж эта ветка в МК AVR), содержащий UART, очень детально расписан принцип детектирования последовательного сигнала.

ИМХО, к этому добавить нечего.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...