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

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
> Проблема с функцией задержки., STM32F107
Сергей Борщ
сообщение Jun 30 2016, 09:43
Сообщение #31


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (Эдди @ Jun 30 2016, 12:14) *
ТС, возьми нормальную реализацию 1-wire через таймер с DMA
Таймер, ПДП и нога, на которую вешается линия прибиты гвоздями, частота таймера тоже прибита гвоздями, куча #define в заголовочном файле, совершенно не нужных никому, кроме самого файла реализации - "нормальная" реализация, ничего не скажешь sm.gif Но сама идея неплоха.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jun 30 2016, 10:15
Сообщение #32


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Jenya7 @ Jun 30 2016, 15:30) *
разгрузка контроллера, грамотно буферезированный выход. Интересно какая дальнобойность у него. Мне нужно до 300 метров.

А чем у Вас контроллер загружен? Другим ногодрыгом? biggrin.gif
Для современных Cortex-M реализация 1-wire посредством прерываний от таймера настолько незначительно нагружает МК, что не стОит навешивания никаких дополнительным чипов.
Go to the top of the page
 
+Quote Post
Эдди
сообщение Jun 30 2016, 10:40
Сообщение #33


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Цитата(Jenya7 @ Jun 30 2016, 12:30) *
Интересно. Но я так понял это для чтения одного датчика?

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

Совершенно бесмысленно это: вместо одной ноги МК занятыми будут две; все равно нужно будет как-то общаться с внешним драйвером (либо блокирующе, либо через DMA)...
А это решение ни контроллер не нагружает (т.к. DMA спокойненько работает отдельно от основного функционала), ни удорожает. Разве что после получения флага готовности очередной порции данных нужно их обработать (один байт данных == массив из восьми uint16_t)...

Цитата(Сергей Борщ @ Jun 30 2016, 12:43) *
Таймер, ПДП и нога, на которую вешается линия прибиты гвоздями, частота таймера тоже прибита гвоздями...

Другой вариант — таймер с прерываниями. Это менее красивое решение, но тоже сойдет.
А ногодрыг - для ардуйщиков поганых.

Насчет "прибивания гвоздями" — можно дефайнами сделать, но это только увеличит шанс ошибиться. Лучше перепроверить в случае выбора другого таймера все по даташиту и поменять непосредственно в сишном файле.
Понятно, что рабочая частота тоже может быть не 72МГц — соответственно надо вносить изменения.
Я не собирался делать "скетч для ардуйни", поэтому ничего лишнего не пихал в код.
Go to the top of the page
 
+Quote Post
Alechek
сообщение Jun 30 2016, 11:21
Сообщение #34


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

Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



Ой, о чем спор? Ногодрыг или аппаратный 1-wire? smile3009.gif
Так он прекрасно реализовывается хоть на UART хоть на SPI. disco.gif
ТС хочет извращаться - пускай занимается извратом. Поможем ему по теме! cool.gif
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Jun 30 2016, 12:26
Сообщение #35


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

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(Alechek @ Jun 30 2016, 16:21) *
Ой, о чем спор? Ногодрыг или аппаратный 1-wire? smile3009.gif
Так он прекрасно реализовывается хоть на UART хоть на SPI. disco.gif
ТС хочет извращаться - пускай занимается извратом. Поможем ему по теме! cool.gif

Я видел реализацию на ЮАРТ. Мне понравилось. Боюсь что свободных ЮАРТов у меня не останеться.
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Jun 30 2016, 12:47
Сообщение #36


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

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Цитата(jcxz @ Jun 30 2016, 14:15) *
А чем у Вас контроллер загружен? Другим ногодрыгом? biggrin.gif
Для современных Cortex-M реализация 1-wire посредством прерываний от таймера настолько незначительно нагружает МК, что не стОит навешивания никаких дополнительным чипов.


Так то оно верно для одного изолированного случая, но когда все выполнено без натяжек, то никогда проблем не возникнет. Тем более, что выбор сделать по-ламерски, потому что думать лень как-то не вселяет оптимизма.
Go to the top of the page
 
+Quote Post
Alechek
сообщение Jul 1 2016, 04:58
Сообщение #37


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

Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



Цитата(Jenya7 @ Jun 30 2016, 17:26) *
Я видел реализацию на ЮАРТ. Мне понравилось. Боюсь что свободных ЮАРТов у меня не останеться.

Ага, и с SPI напряг... Слабо верится.
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 Текстовая версия Сейчас: 6th July 2025 - 02:31
Рейтинг@Mail.ru


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