-
- Интересное решение, однако надо 1,5. Tyмблep(103 знак., 12.05.2022 19:08)
- Никто не мешает аналогично сделать паузу любой длины. Отправляете
2, 3, 4 символа, меняете скорость/битность и тыды. Зависит от
наличных ресурсов: у STM обычно до чёртовой страсти таймеров (но
фигово, что они все разные) , а у более других камней не всегда так
шоколадно. Бывает и 4 таймера на 11 UART-ов. Поэтому считаю вариант
с использованием только ресурсов самого UART более универсальным. - LightElf(14.05.2022 14:58)
- Смысл использования таймера в другом. Tyмблep(578 знак., 23.05.2022 16:37)
- Проще сделать сколько нужно программных каналов на одном аппаратном
таймере. - Cкpипaч(14.05.2022 15:49)
- Проще, но точность времянок страдает. Задержка в полтора символа на
115200/230400 да на 3-4 UART-ах сразу - ну такое себе. А уж если
под линухом каким - совсем туши свет. LightElf(115 знак., 14.05.2022 22:52)
- Создавать таймеры под Линуксом "врукопашную" - полный бред. Для этого есть select. - Cкpипaч(15.05.2022 09:34)
- Я на ассемблере делал (на Си не умел ещё). Появляется задача
сделать выдержку. В этот момент, относительно текущего значения
таймера, вычисляется значение, при котором должна быть сработка.
Это значение помещается в очередь. В компаратор таймера заносится
ближайшее, по времени, значение. В прерывании таймера оповещается
соответствующий заказчик выдержки и в компаратор загружается
следующее, по времени значение. Отлично работало! - Nikolay_Po(14.05.2022 17:16)
- Мне проще думать "в обратной симметрии". С каким-то шагом
вызываются "обрабочики", они проверяют разные всякие условия,
смотрят задержку (разница сохраненного значения таймера и текущего)
и делают разные действия. - Cкpипaч(14.05.2022 17:56)
- У меня требование к точности времянок было. Минимально допустимая задержка начиналась от нескольких мкс, а выдержка была с джиттером в несколько периодов инструкций. Ассемблер... Архитектурно, сразу несколько прерываний в один момент не пересекались. Далеко не ОСРВ была. - Nikolay_Po(14.05.2022 18:57)
- +1. Давно к этому пришёл. Минимум требований: 1) достаточно одного
таймера на всех, 2) нужно просто следить, что обработчики
вызываются достаточно часто, чтобы гарантировать приемлемый
джиттер. Обработчики друг от друга никак не зависят. Сплошные
удобства, короче. - SciFi(14.05.2022 18:02)
- Из "тонкого тьюнинга". На самом деле, прерывание таймера -
"пустое". Биг-луп, начинается командой halt() и стоит ждет
у моря погодылюбого прерывания. В том числе, таймера. Все проверки - просто в биг-лупе. - Cкpипaч(14.05.2022 18:14)- Так точно. Прерывания практикую, когда биг луп с необходимой
времянкой ну точно не справится, что бывает крайне редко. - SciFi(14.05.2022 18:16)
- Я тоже пришёл к мнению что выбирать нужно из двух вариантов - 1) биглуп без прерываний 2) РТОСина со всем фаршем. Полумеры фтопку. - =AlexD=(23.05.2022 14:07)
- У дураков мысли сходятся :) - Cкpипaч(14.05.2022 18:17)
- Доставай белое :-) - SciFi(14.05.2022 18:25)
- Жена привезла с Кипра "Пять Королей" (это бренди такой :-) - Cкpипaч(14.05.2022 21:22)
- Доставай белое :-) - SciFi(14.05.2022 18:25)
- Так точно. Прерывания практикую, когда биг луп с необходимой
времянкой ну точно не справится, что бывает крайне редко. - SciFi(14.05.2022 18:16)
- Из "тонкого тьюнинга". На самом деле, прерывание таймера -
"пустое". Биг-луп, начинается командой halt() и стоит ждет
- Мне проще думать "в обратной симметрии". С каким-то шагом
вызываются "обрабочики", они проверяют разные всякие условия,
смотрят задержку (разница сохраненного значения таймера и текущего)
и делают разные действия. - Cкpипaч(14.05.2022 17:56)
- Проще, но точность времянок страдает. Задержка в полтора символа на
115200/230400 да на 3-4 UART-ах сразу - ну такое себе. А уж если
под линухом каким - совсем туши свет. LightElf(115 знак., 14.05.2022 22:52)
- Никто не мешает аналогично сделать паузу любой длины. Отправляете
2, 3, 4 символа, меняете скорость/битность и тыды. Зависит от
наличных ресурсов: у STM обычно до чёртовой страсти таймеров (но
фигово, что они все разные) , а у более других камней не всегда так
шоколадно. Бывает и 4 таймера на 11 UART-ов. Поэтому считаю вариант
с использованием только ресурсов самого UART более универсальным. - LightElf(14.05.2022 14:58)
- Интересное решение, однако надо 1,5. Tyмблep(103 знак., 12.05.2022 19:08)