генератор сигналов в FLProg
- alverzilin
- Рядовой
- Сообщения: 72
- Зарегистрирован: 15 сен 2016, 00:33
- Откуда: Zlobin.BY
генератор сигналов в FLProg
Даёшь 153,6 кГц!?)) тоже надо... но как понял, не реально((
зы. поспешил написать, не дочитав.. надо с уно получить эту частоту.. но при этом, что бы уно ещё работал как rx-tx преобразователь к юсб... слабо?
зы. поспешил написать, не дочитав.. надо с уно получить эту частоту.. но при этом, что бы уно ещё работал как rx-tx преобразователь к юсб... слабо?
Последний раз редактировалось alverzilin 06 апр 2017, 16:49, всего редактировалось 1 раз.
- Boroda
- Капитан
- Сообщения: 836
- Зарегистрирован: 01 май 2016, 01:04
- Откуда: Коломна
- Имя: Станислав
- Контактная информация:
генератор сигналов в FLProg
alverzilin, 153,6 кГц - это прерывания с периодом 3,25мкс. Системный таймер Arduino дает прерывания 4мкс (тут же переключаются ноги, считываются ноги, считается таймеры Millis и Micros). Два этих прерывания будут накладываться друг на друга, да и ноги чаще 4мкс не могут переключаться.
- alverzilin
- Рядовой
- Сообщения: 72
- Зарегистрирован: 15 сен 2016, 00:33
- Откуда: Zlobin.BY
генератор сигналов в FLProg
Ноги разные да? может я не понятно выразился... как бы объяснить.. короче.. три ноги (пины уно) одна всё время "вещает" прямоугольный импульс с известной частотой, а другие две - это, одна rx, а вторая tx. как то так. не? никак?Boroda писал(а):тут же переключаются ноги, считываются ноги
- Boroda
- Капитан
- Сообщения: 836
- Зарегистрирован: 01 май 2016, 01:04
- Откуда: Коломна
- Имя: Станислав
- Контактная информация:
генератор сигналов в FLProg
Сам немного не правильно выразился. В системном прерывании, которое происходит каждые 4мкс, считаются глобальные таймеры Millis (таймер милисекунд) и Micros (таймер микросекунд).
Примерно такое же время занимают такие команды, как DigitalRead (чтение дискретного входа) и DigitalWrite (запись дискретного выхода) ,т.е. этими стандартными командами данную проблему не решить.
Даже если настроить любой из таймеров на прерывание 3,25 микросекунды для переключения выхода, то это прерывание будет конфликтовать с системным (практически одновременно происходят), т.к. одновременно может обрабатываться только одно прерывание. Таким образом то, что мы получим будет явно не частоты 153,6кГц и явно не будет являться меандром (импульс=паузе).
Примерно такое же время занимают такие команды, как DigitalRead (чтение дискретного входа) и DigitalWrite (запись дискретного выхода) ,т.е. этими стандартными командами данную проблему не решить.
Даже если настроить любой из таймеров на прерывание 3,25 микросекунды для переключения выхода, то это прерывание будет конфликтовать с системным (практически одновременно происходят), т.к. одновременно может обрабатываться только одно прерывание. Таким образом то, что мы получим будет явно не частоты 153,6кГц и явно не будет являться меандром (импульс=паузе).
- alverzilin
- Рядовой
- Сообщения: 72
- Зарегистрирован: 15 сен 2016, 00:33
- Откуда: Zlobin.BY
генератор сигналов в FLProg
Ага. То есть, говоря простым языком, вещание импульса, скажем так, и чтение-запись rx-tx, не могут выполнятся одновременно. Я правильно понял? Получается, нужно две уно, грубо говоря... Ясно. Вопрос то не суть важен, то есть другое решение. Но хотелось знать, не усложняю ли я себе задачу. Оказывается нет. Понял. спасибо за объяснение!)Boroda писал(а):то это прерывание будет конфликтовать с системным
зы. но так как мне нужна частота выше чем может дать уно, то вообще нужно использовать другие компоненты.
зыы тоже использую контроллер, но другого профиля...
- Boroda
- Капитан
- Сообщения: 836
- Зарегистрирован: 01 май 2016, 01:04
- Откуда: Коломна
- Имя: Станислав
- Контактная информация:
генератор сигналов в FLProg
Аппаратный UART (RX/TX) может работать одновременно с чем угодно. А вот генерацию таких коротких импульсов сделать не получится. Если только... где-то на форуме народ изменял частоту работы ШИМ-выходов (PWM). Вот это Вам может помочь. Но точную частоту получить будет сложно.alverzilin писал(а):вещание импульса, скажем так, и чтение-запись rx-tx
- alverzilin
- Рядовой
- Сообщения: 72
- Зарегистрирован: 15 сен 2016, 00:33
- Откуда: Zlobin.BY
генератор сигналов в FLProg
как раз таки нужна точная. дело в том, что данный импульс необходим для синхронизации rx\tx со скоростью 9600 бит в секундуBoroda писал(а):точную частоту получить будет сложно
- Boroda
- Капитан
- Сообщения: 836
- Зарегистрирован: 01 май 2016, 01:04
- Откуда: Коломна
- Имя: Станислав
- Контактная информация:
генератор сигналов в FLProg
А чего это за импульс такой? RX\TX - имеется ввиду UART?alverzilin писал(а):данный импульс необходим для синхронизации rx\tx
- alverzilin
- Рядовой
- Сообщения: 72
- Зарегистрирован: 15 сен 2016, 00:33
- Откуда: Zlobin.BY
генератор сигналов в FLProg
Это сигналы с ЭБУ авто...Boroda писал(а):А чего это за импульс такой? RX\TX -
генератор сигналов в FLProg
Доброго времени суток.
разрешите пару вопросов по теме..
1) генератор предложенный sser в посте №36, использует прерывания? и как-то привязан к аппаратной части?
2) в одной программе (плате) можно использовать этот генератор (с привязкой к 9 пину) и два скоростных счетчика в режиме измерения длительности импульса(с привязкой к 2 и 3 пину, на Ардуино уно)?
разрешите пару вопросов по теме..
1) генератор предложенный sser в посте №36, использует прерывания? и как-то привязан к аппаратной части?
2) в одной программе (плате) можно использовать этот генератор (с привязкой к 9 пину) и два скоростных счетчика в режиме измерения длительности импульса(с привязкой к 2 и 3 пину, на Ардуино уно)?
генератор сигналов в FLProg
Кто подскажет, почему генератор сигналов спешит. Симметричный мультивибратор с частотой 500мс. Светодиод на Nano моргает с интервалом 1с. Через каждые 60 секунд идет сигнал на запуск ШД, о тот делает один оборот. За 12 часов происходит сдвиг запуска ШД на +5 секунд, то есть в не в 0 сек, а в 05сек. Через сутки +10 секунд.
Как это лечится?
Как это лечится?
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость