Например TDA7294

Форум РадиоКот • Просмотр темы - Написал свою Onewire для Codevision
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Пн дек 29, 2025 04:55:56

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 115 ]    , , , 4, ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Написал свою Onewire для Codevision
СообщениеДобавлено: Сб окт 28, 2023 22:16:35 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 24632
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
И вот именно для скорости у меня мастер не держит тайм слот до конца, он ждет когда ведомый опустит шину.

Это фуфло, а не ускорение. Оно зависит от слейва.
Да и зачем ускорять термометр? Вы вообще в курсе, что измерять температуру часто не требуется, а даже ущербно для точности? Вообще то 1820 сам начинает греться от своего же функционирования... :tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Написал свою Onewire для Codevision
СообщениеДобавлено: Сб окт 28, 2023 22:20:32 
Мудрый кот

Карма: 25
Рейтинг сообщений: 494
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1820
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
... сам начинает греться от своего же функционирования...

Абсолютно согласен! И датчик и т.д. предметы имеют массу. В целом нагрев: это медленной процесс. Быстрее чем 3..10 секунд измерять смысмысла не вижу. Получаем только самонагревание.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Написал свою Onewire для Codevision
СообщениеДобавлено: Сб окт 28, 2023 22:22:11 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 24632
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
Малоблокирующий код это код, который не блокирует прерывания внезапно. Ибо если на датчик уходит 3 мс то ты хоть усрись, проц эти 3 мс будет работать с шиной. А вот будут ли блокироваться прерывания в это время очень важно.

Вы не понимаете о чем пишите.
Блокировка не равна времени работы с шиной. Блокировка - это НЕПРЕРЫВНАЯ работа с шиной или ее протоколом. То есть интервал времени, в котором никакой другой код main-а работать не может. И не требуется блокировать прерывания, ЕСЛИ ТОЛЬКО У ВАС обработчики прерываний сами по себе не являются блокирующими. Но тут уже "кто на кого учился"... :))) :tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Написал свою Onewire для Codevision
СообщениеДобавлено: Сб окт 28, 2023 22:23:49 
Потрогал лапой паяльник

Карма: -4
Рейтинг сообщений: -18
Зарегистрирован: Сб окт 20, 2007 14:12:03
Сообщений: 328
Рейтинг сообщения: 0
У вас в голове каша я смотрю. Скорость работы функции вам не важна? Мы не ускоряем термометр. У меня есть задачи где нужно раз в 10 сек читать температуру. Ну хозяин барин. Вы не сможете написать функцию не на нопах под AVR. Только при использовании USART.
Как это не блокировать прерывания? Там критичный ко времени код.
Понимаете есть задачи где критически важно получить температуру здесь и сейчас. Правильную.
И я вам ровно по то же самое говорю, именно про время работы функции. Она у меня работает примерно в два раза быстрее родной, а вы почему то говорите что это пофиг и температуру надо мерять раз в час )))


Последний раз редактировалось AVK Сб окт 28, 2023 22:27:49, всего редактировалось 1 раз.

Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: Написал свою Onewire для Codevision
СообщениеДобавлено: Сб окт 28, 2023 22:26:01 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2927
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18893
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
AVK, при работе с этими датчиками вообще пользоваться прерываниями не нужно. даже с одним прерыванием, от слова совсем.

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Написал свою Onewire для Codevision
СообщениеДобавлено: Сб окт 28, 2023 22:29:46 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 24632
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
Там критичный ко времени код.

Нет, это не так. Критичность ко времени определяется латентностью других задач.
Если вы считаете в функциях main-а по сотне миллисекунд монолитно, то вы сам себе злой буратино.
Поинтересуйтесь как работают кооперативные и вытесняющие ОСРВ. Но не для того, чтобы их поднимать на своих МК, а для того, чтобы понимать как вообще реализуется многозадачность. Ну и научитесь правильно оценивать код на предмет требований реального времени. Далеко не любая задача является задачей реального времени, даже если она с таймингами...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Написал свою Onewire для Codevision
СообщениеДобавлено: Сб окт 28, 2023 22:31:57 
Потрогал лапой паяльник

Карма: -4
Рейтинг сообщений: -18
Зарегистрирован: Сб окт 20, 2007 14:12:03
Сообщений: 328
Рейтинг сообщения: 0
Вы понимаете про что я вообще говорю? Если вы хотите сделать функцию. которая не будет тратить 4мс на чтение датчика вами прийдется использовать USART и прерывания. Без вариантов.
Я просто в шоке, вроде умные люди.

Добавлено after 1 minute 42 seconds:
КРАМ вы прикалываетесь? Там критически важны тайминги. Иначе считаем мусор.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Написал свою Onewire для Codevision
СообщениеДобавлено: Сб окт 28, 2023 22:36:40 
Мудрый кот

Карма: 25
Рейтинг сообщений: 494
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1820
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
Меняете систему/mcu и... можно прерывание в прерывания. С другими МК данные не потеряете. Наверное, поэтому и существуют разные точки зрения. Так кто как привык.


Последний раз редактировалось veso74 Сб окт 28, 2023 22:37:53, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Написал свою Onewire для Codevision
СообщениеДобавлено: Сб окт 28, 2023 22:37:29 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 24632
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
Там критически важны тайминги.

Чушь не надо писать. Если тайминги допускают ДВУХКРАТНЫЙ интервал, то о какой "критичности" может идти речь? Тем более, что там речь идет о десятках микросекунд, а ваш МК работает с машинным циклом в 50...100 нс...
Вы видимо вообще не разбираетесь в железе и в транслируемом коде... :facepalm:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Написал свою Onewire для Codevision
СообщениеДобавлено: Сб окт 28, 2023 22:44:40 
Мудрый кот

Карма: 25
Рейтинг сообщений: 494
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1820
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
С AVR, к сожалению, инструментов меньше. с AVR мне кажется, задался целью построить высокий блок, а материалы у меня все заканчиваются (напр. vs PIC, STM32). И по целям: возможно множество решений. Вот тут возникают споры (о том, напр. кто и как пишет код для DS).


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Написал свою Onewire для Codevision
СообщениеДобавлено: Сб окт 28, 2023 22:50:47 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 24632
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
С AVR, к сожалению, инструментов меньше.

Если бы я в настоящее время не разбирал чужой код на 165-ой атмеге, то я бы может и согласился с вами, но даже один таймер может использоваться в куче задач, если правильно написать алгоритм. Так в куче задач используют SysTick в ARM-ах. Важно только правильно выбрать системный интервал и не писать монструозные вычисления в обработчике прерываний... Аналогично можно сделать и в AVR.
ЗЫ. Специально в ответах для вас делаю контрольный перевод на болгарский, чтобы по возможности исключить неоднозначности машинного перевода... :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Написал свою Onewire для Codevision
СообщениеДобавлено: Сб окт 28, 2023 23:05:26 
Мудрый кот

Карма: 25
Рейтинг сообщений: 494
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1820
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
Согласен. Так или иначе внедрили таймери везде: micros(), get_ticks(), SysTick ... Только в каком-то очень старом МК такой возможности нет. Например, нет прерывание по таймеру (напр. PIC12F508?). Но и там реализовать DS18 возможно (с задержками).


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Написал свою Onewire для Codevision
СообщениеДобавлено: Вс окт 29, 2023 08:03:49 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 24632
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
Поинтересуйтесь как работают кооперативные и вытесняющие ОСРВ....

В догон для автора темы ссылка на полезную для него информацию. Сама ссылка ведет на описание кооперативной ОСРВ OSA, но на этом же ресурсе есть описание вытесняющей ОСРВ TNKernel.
Обе статьи написаны двумя очень грамотными питерскими инженерами.
Повторюсь, дело не в применении ОСРВ, а в понимании идеологии многозадачности.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Написал свою Onewire для Codevision
СообщениеДобавлено: Вс окт 29, 2023 08:19:29 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2927
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18893
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
КРАМ, критически важны тайминги там, все-таки, есть, но они короткие.
как я выше писал, при чтении после начала слота не позднее 15 мкс нужно считать бит с порта. а при записи - еще гораздо короче - после стартового нуля сразу же выдать бит в порт.

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Написал свою Onewire для Codevision
СообщениеДобавлено: Вс окт 29, 2023 08:31:39 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 24632
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
не позднее 15 мкс нужно

15 мкс при 20 МГц системной частоты означает 300 машинных циклов. ТРИСТА, Карл!!! А всякие "сразу" - это 1 мкс, то есть двадцать машинных циклов.
Если блокировка наступает на 20 циклов - хрен бы с ней. А вот на 300 - это уже перебор...
Опять же эти задержки следуют у автора одна за другой в непрерывном теле функции... :facepalm:
И в очередной раз - дело программиста решать что ему критично, а что нет. Зависит от списка задач и их допустимой латентности. Но тут разговор идет о принципиальных вопросах, которые автор пытается решить странными методами, которые на самом деле ничего не решают.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Написал свою Onewire для Codevision
СообщениеДобавлено: Вс окт 29, 2023 09:44:11 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2927
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18893
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
ну, у меня не такие сложные проекты, чтобы блокировка на 15 мкс принесла вред.
многозадачности у меня нет, чтобы такая блокировка помешала бы другому процессу.
а код автора я не видел - я не скачиваю и не распаковываю архивы. но смысл я понял из разговора.

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Написал свою Onewire для Codevision
СообщениеДобавлено: Вс окт 29, 2023 09:56:42 
Мудрый кот

Карма: 25
Рейтинг сообщений: 494
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1820
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
Тоже не вижу проблемы в методе с задержкой и кратковременной отменой прерывания. Есть несколько проектов (Arduino, AVR, PIC, STM8/32) с DS18, многозадачности нет, кроме светодиодной индикацией (4 * 80 Hz = 320 Hz, до 800 Hz протестировал). Ничто никого не мешает. Большего делать не приходилось.

Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Написал свою Onewire для Codevision
СообщениеДобавлено: Вс окт 29, 2023 10:11:57 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2927
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18893
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
очень много проектов можно сделать, не прибегая к многозадачной ОС. и в этом случае задержки с кратковременной отменой прерываний работают без проблем.
и все мои проекты работают в реальном времени без применения операционной системы.

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Написал свою Onewire для Codevision
СообщениеДобавлено: Вс окт 29, 2023 10:24:28 
Потрогал лапой паяльник

Карма: -4
Рейтинг сообщений: -18
Зарегистрирован: Сб окт 20, 2007 14:12:03
Сообщений: 328
Рейтинг сообщения: 0
но даже один таймер может использоваться в куче задач, если правильно написать алгоритм. Так в куче задач используют SysTick в ARM-ах.

И если бы посмотрели мой исходник вы бы это и увидели. Не стоит думать, что вы самый умный ))))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Написал свою Onewire для Codevision
СообщениеДобавлено: Вс окт 29, 2023 11:06:42 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2927
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18893
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
AVK, все твои посты говорят о том, что это ты считаешь тут себя самым умным.

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


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 115 ]    , , , 4, ,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 20


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y