Обсуждаем контроллеры компании Atmel.
Ответить

Re: Написал свою Onewire для Codevision

Вс окт 29, 2023 11:36:04

Можно примеры такого моего поведения?
Вы даже не смотрели исходник и флудите в теме.
О чем с вами говорить?

Re: Написал свою Onewire для Codevision

Вс окт 29, 2023 11:44:44

я же сказал, что ВСЕ твои посты служат примером твоего поведения.
и чтобы понять, что ты там накодил, необязательно смотреть твой исходник.

Re: Написал свою Onewire для Codevision

Вс окт 29, 2023 12:32:32

Вот я например до сих пор обращаюсь с вами на Вы.
И вы вообще адекватны? Вы же несете, простите, бред. Что бы понять, что я накодил надо ОБЯЗАТЕЛЬНО посмотреть исходник. Причем внимательно посмотреть. Я изучил детально одноваре и смотрел все реализации опроса которые нашел, несколько недель потратил. Ну а вы дистанционно решили что это шляпа. Завидую вашей прозорливости.

Re: Написал свою Onewire для Codevision

Вс окт 29, 2023 13:52:35

Что бы понять, что я накодил надо ОБЯЗАТЕЛЬНО посмотреть исходник.

В этом нет необходимости, уверяю вас. Достаточно пробежать глазами пару страниц кода.
И вообще, вы очень наивно полагаете, что коллектив будет разбирать ваш код с целью убедится в вашем "мамой клянус".
Вам достаточно было изложить ключевые моменты вашего варианта кода. И все.
Пока что я вижу, что принципиально ваш код ничем от стандартной библиотеки не отличается. Экономия "на спичках" принципиальным отличием не является.
Более того, желающие использовать библиотеки отдают себе отчет в том, что ЛЮБАЯ библиотека имеет эффективность кода ниже, чем специально написанный и интегрированный в остальную программу код. Это происходит потому, что библиотеку максимально изолируют от остального кода так, чтобы можно было ее просто включить в код, не меняя ничего более.

Re: Написал свою Onewire для Codevision

Вс окт 29, 2023 13:53:43

очень много проектов можно сделать, не прибегая к многозадачной ОС. и в этом случае задержки с кратковременной отменой прерываний работают без проблем.

Более того, зачастую не используя прерывания. И даже медленный ds1820 не мешает. Главное что бы вписывался в системный период.

Re: Написал свою Onewire для Codevision

Вс окт 29, 2023 14:22:29

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

Re: Написал свою Onewire для Codevision

Вс окт 29, 2023 14:38:41

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

"Никогда не говори никогда."
1. Когда у тебя крутятся шустрые процессы, а системный период относительно них велик, тупо ставлю delay() в супер лупе.
2. Можно опрашивать флаг срабатывания таймера. Без прерываний.
3. Если есть требуемый внешний сигнал - тогда вообще без таймера.

Re: Написал свою Onewire для Codevision

Вс окт 29, 2023 14:42:46

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

Re: Написал свою Onewire для Codevision

Вс окт 29, 2023 14:51:41

Мы разве о жестком реальном времени? И о джиттере тоже разговора нет, который будет присутствовать хоть с прерываниями, хоть без. И который во многих случаях не критичен.

Re: Написал свою Onewire для Codevision

Вс окт 29, 2023 15:04:58

лично я вел речь исключительно о жестком реальном времени.
а джиттер у меня не более 3 циклов на проверку счетчика. при тактовой 8 МГц это не более 0,375 мкс.
когда у меня полный цикл составляет 1 секунду, можно считать, что для реального времени джиттера вообще нет.

Re: Написал свою Onewire для Codevision

Вс окт 29, 2023 17:48:43

а джиттер у меня не более 3 циклов на проверку счетчика. при тактовой 8 МГц это не более 0,375 мкс.

Для каких целей, если не секрет?)

Re: Написал свою Onewire для Codevision

Вс окт 29, 2023 19:08:33

если конкретно про 2 моих проекта, там таймер отмеряет 1/512 секунды.
потом один регистр-счетчик отмеряет 8 прерываний таймера - получается системный "тик" по 15,625 мс.
потом второй регистр-счетчик отмеряет 64 тика первого счетчика - получается 1 секунда.
ожидание первого "тика" сделано так:
Код:
   wait_timer1:
   cpi count_int_T1, 8
   brlo wait_timer1
что занимает 3 цикла.

внутри прерывания таймера первый счетчик считает до 8. как только появилось 8, первый счетчик обнуляется, а второй счетчик инкрементируется.
по 15,625 мс у меня выполняется "малый" цикл.
при наступлении 1 секунды у меня выполняется полный цикл.

Re: Написал свою Onewire для Codevision

Пн окт 30, 2023 08:34:26

потом один регистр-счетчик отмеряет 8 прерываний таймера - получается системный "тик" по 15,625 мс.

Одна секунда для каких целей?
Каждое прерывание - джиттер. Какой джиттер будет после 8-ми прерываний?

Re: Написал свою Onewire для Codevision

Пн окт 30, 2023 10:08:51

в обоих проектах работает секундомер - счетчик времени работы.
идет проверка сразу 8-ми прерываний, поэтому джиттер такой, как я уже сказал - не более 3 циклов.
и для одной секунды будет тот же самый джиттер - 3 цикла. и как я уже сказал, для одной секунды можно считать, что джиттера нет.
это видно по приведенному коду - проверяется значение счетчика на равенство 8-ми.
даже если бы джиттер был гораздо больше, секундомер все равно считает время правильно.
а джиттер начала обработки прерывания для меня вообще не имеет значения, тем более, что там разброс составляет доли микросекунды.
лично я не знаю ситуаций, где такой джиттер, как у меня, может иметь существенное значение.
оба проекта есть здесь в разделе "Питание".

Re: Написал свою Onewire для Codevision

Пн окт 30, 2023 11:51:36

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

Вот и я о том, что всё зависит от конкретной ситуации. От неё и точность формирования временных меток.
Исходник где то можно увидеть?

Re: Написал свою Onewire для Codevision

Пн окт 30, 2023 12:49:26

последние исходники увидеть нельзя.
очень старый исходник можно увидеть вот здесь:
viewtopic.php?p=2741824#p2741824
но там программа гораздо проще последней версии. я тогда в начале 2016 года только начал осваивать АТмега8.
и там совсем другие тайминги, чем сейчас.
а дальнейшее развитие этого проекта стало уже в другой теме:
viewtopic.php?f=11&t=138699.
вторая моя большая тема:
viewtopic.php?f=11&t=134419

Re: Написал свою Onewire для Codevision

Пн окт 30, 2023 14:07:50

последние исходники увидеть нельзя.

Етить колотить почему? Стыдно?

Re: Написал свою Onewire для Codevision

Пн окт 30, 2023 14:32:27

ага, стыдно. они не идут ни в какое сравнение с тем очень старым исходником.
что такое ноу хау знаешь?
вот там у меня есть мои ноу хау, которые я никому не покажу.

Re: Написал свою Onewire для Codevision

Пн окт 30, 2023 14:40:39

Ноу хау )))))) Ну можно хотя бы на словах, что за ноу хау? Я вижу проект выходного дня, если вы про регулируемый источник питания. Или измеритель емкости аккумов это мега секретная штука?

Re: Написал свою Onewire для Codevision

Пн окт 30, 2023 14:44:55

не секретная - проект в теме в открытом доступе, скачивай архив и изготавливай.
смотри старый исходник, там тоже у меня есть нестандартные решения.
Ответить