Страница 3 из 3

генератор сигналов в FLProg

Добавлено: 06 апр 2017, 16:41
alverzilin
Даёшь 153,6 кГц!?)) тоже надо... но как понял, не реально((

зы. поспешил написать, не дочитав.. надо с уно получить эту частоту.. но при этом, что бы уно ещё работал как rx-tx преобразователь к юсб... слабо?

генератор сигналов в FLProg

Добавлено: 06 апр 2017, 17:18
Boroda
alverzilin, 153,6 кГц - это прерывания с периодом 3,25мкс. Системный таймер Arduino дает прерывания 4мкс (тут же переключаются ноги, считываются ноги, считается таймеры Millis и Micros). Два этих прерывания будут накладываться друг на друга, да и ноги чаще 4мкс не могут переключаться.

генератор сигналов в FLProg

Добавлено: 06 апр 2017, 18:26
alverzilin
Boroda писал(а):тут же переключаются ноги, считываются ноги
Ноги разные да? может я не понятно выразился... как бы объяснить.. короче.. три ноги (пины уно) одна всё время "вещает" прямоугольный импульс с известной частотой, а другие две - это, одна rx, а вторая tx. как то так. не? никак?

генератор сигналов в FLProg

Добавлено: 06 апр 2017, 19:48
Boroda
Сам немного не правильно выразился. В системном прерывании, которое происходит каждые 4мкс, считаются глобальные таймеры Millis (таймер милисекунд) и Micros (таймер микросекунд).

Примерно такое же время занимают такие команды, как DigitalRead (чтение дискретного входа) и DigitalWrite (запись дискретного выхода) ,т.е. этими стандартными командами данную проблему не решить.

Даже если настроить любой из таймеров на прерывание 3,25 микросекунды для переключения выхода, то это прерывание будет конфликтовать с системным (практически одновременно происходят), т.к. одновременно может обрабатываться только одно прерывание. Таким образом то, что мы получим будет явно не частоты 153,6кГц и явно не будет являться меандром (импульс=паузе).

генератор сигналов в FLProg

Добавлено: 07 апр 2017, 17:01
alverzilin
Boroda писал(а):то это прерывание будет конфликтовать с системным
Ага. То есть, говоря простым языком, вещание импульса, скажем так, и чтение-запись rx-tx, не могут выполнятся одновременно. Я правильно понял? Получается, нужно две уно, грубо говоря... Ясно. Вопрос то не суть важен, то есть другое решение. Но хотелось знать, не усложняю ли я себе задачу. Оказывается нет. Понял. спасибо за объяснение!)

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

генератор сигналов в FLProg

Добавлено: 07 апр 2017, 17:05
Boroda
alverzilin писал(а):вещание импульса, скажем так, и чтение-запись rx-tx
Аппаратный UART (RX/TX) может работать одновременно с чем угодно. А вот генерацию таких коротких импульсов сделать не получится. Если только... где-то на форуме народ изменял частоту работы ШИМ-выходов (PWM). Вот это Вам может помочь. Но точную частоту получить будет сложно.

генератор сигналов в FLProg

Добавлено: 07 апр 2017, 23:20
alverzilin
Boroda писал(а):точную частоту получить будет сложно
как раз таки нужна точная. дело в том, что данный импульс необходим для синхронизации rx\tx со скоростью 9600 бит в секунду

генератор сигналов в FLProg

Добавлено: 08 апр 2017, 00:38
Boroda
alverzilin писал(а):данный импульс необходим для синхронизации rx\tx
А чего это за импульс такой? RX\TX - имеется ввиду UART?

генератор сигналов в FLProg

Добавлено: 19 апр 2017, 20:08
alverzilin
Boroda писал(а):А чего это за импульс такой? RX\TX -
Это сигналы с ЭБУ авто...

генератор сигналов в FLProg

Добавлено: 20 апр 2017, 17:57
atoll07
Доброго времени суток.
разрешите пару вопросов по теме..
1) генератор предложенный sser в посте №36, использует прерывания? и как-то привязан к аппаратной части?
2) в одной программе (плате) можно использовать этот генератор (с привязкой к 9 пину) и два скоростных счетчика в режиме измерения длительности импульса(с привязкой к 2 и 3 пину, на Ардуино уно)?

генератор сигналов в FLProg

Добавлено: 19 сен 2017, 19:31
Sevast
Кто подскажет, почему генератор сигналов спешит. Симметричный мультивибратор с частотой 500мс. Светодиод на Nano моргает с интервалом 1с. Через каждые 60 секунд идет сигнал на запуск  ШД, о тот делает один оборот. За 12 часов происходит сдвиг запуска ШД на +5 секунд, то есть в не в 0 сек, а в 05сек. Через сутки +10 секунд.
Как это лечится?