Вот я например до сих пор обращаюсь с вами на Вы. И вы вообще адекватны? Вы же несете, простите, бред. Что бы понять, что я накодил надо ОБЯЗАТЕЛЬНО посмотреть исходник. Причем внимательно посмотреть. Я изучил детально одноваре и смотрел все реализации опроса которые нашел, несколько недель потратил. Ну а вы дистанционно решили что это шляпа. Завидую вашей прозорливости.
Что бы понять, что я накодил надо ОБЯЗАТЕЛЬНО посмотреть исходник.
В этом нет необходимости, уверяю вас. Достаточно пробежать глазами пару страниц кода. И вообще, вы очень наивно полагаете, что коллектив будет разбирать ваш код с целью убедится в вашем "мамой клянус". Вам достаточно было изложить ключевые моменты вашего варианта кода. И все. Пока что я вижу, что принципиально ваш код ничем от стандартной библиотеки не отличается. Экономия "на спичках" принципиальным отличием не является. Более того, желающие использовать библиотеки отдают себе отчет в том, что ЛЮБАЯ библиотека имеет эффективность кода ниже, чем специально написанный и интегрированный в остальную программу код. Это происходит потому, что библиотеку максимально изолируют от остального кода так, чтобы можно было ее просто включить в код, не меняя ничего более.
очень много проектов можно сделать, не прибегая к многозадачной ОС. и в этом случае задержки с кратковременной отменой прерываний работают без проблем.
Более того, зачастую не используя прерывания. И даже медленный ds1820 не мешает. Главное что бы вписывался в системный период.
OKF, невозможно организовать системный период без использования прерывания по таймеру. иначе твой системный период не будет привязан к реальному времени. AVK, весь бред в этой теме идет исключительно от тебя. а обращаться на Вы ты будешь в английском клубе, а здесь русский форум.
_________________ Мудрость приходит вместе с импотенцией... Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
OKF, невозможно организовать системный период без использования прерывания по таймеру. иначе твой системный период не будет привязан к реальному времени.
"Никогда не говори никогда." 1. Когда у тебя крутятся шустрые процессы, а системный период относительно них велик, тупо ставлю delay() в супер лупе. 2. Можно опрашивать флаг срабатывания таймера. Без прерываний. 3. Если есть требуемый внешний сигнал - тогда вообще без таймера.
Мы разве о жестком реальном времени? И о джиттере тоже разговора нет, который будет присутствовать хоть с прерываниями, хоть без. И который во многих случаях не критичен.
лично я вел речь исключительно о жестком реальном времени. а джиттер у меня не более 3 циклов на проверку счетчика. при тактовой 8 МГц это не более 0,375 мкс. когда у меня полный цикл составляет 1 секунду, можно считать, что для реального времени джиттера вообще нет.
_________________ Мудрость приходит вместе с импотенцией... Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
если конкретно про 2 моих проекта, там таймер отмеряет 1/512 секунды. потом один регистр-счетчик отмеряет 8 прерываний таймера - получается системный "тик" по 15,625 мс. потом второй регистр-счетчик отмеряет 64 тика первого счетчика - получается 1 секунда. ожидание первого "тика" сделано так:
Код:
wait_timer1: cpi count_int_T1, 8 brlo wait_timer1 что занимает 3 цикла.
внутри прерывания таймера первый счетчик считает до 8. как только появилось 8, первый счетчик обнуляется, а второй счетчик инкрементируется. по 15,625 мс у меня выполняется "малый" цикл. при наступлении 1 секунды у меня выполняется полный цикл.
_________________ Мудрость приходит вместе с импотенцией... Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
в обоих проектах работает секундомер - счетчик времени работы. идет проверка сразу 8-ми прерываний, поэтому джиттер такой, как я уже сказал - не более 3 циклов. и для одной секунды будет тот же самый джиттер - 3 цикла. и как я уже сказал, для одной секунды можно считать, что джиттера нет. это видно по приведенному коду - проверяется значение счетчика на равенство 8-ми. даже если бы джиттер был гораздо больше, секундомер все равно считает время правильно. а джиттер начала обработки прерывания для меня вообще не имеет значения, тем более, что там разброс составляет доли микросекунды. лично я не знаю ситуаций, где такой джиттер, как у меня, может иметь существенное значение. оба проекта есть здесь в разделе "Питание".
_________________ Мудрость приходит вместе с импотенцией... Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
даже если бы джиттер был гораздо больше, секундомер все равно считает время правильно. а джиттер начала обработки прерывания для меня вообще не имеет значения, тем более, что там разброс составляет доли микросекунды. лично я не знаю ситуаций, где такой джиттер, как у меня, может иметь существенное значение. оба проекта есть здесь в разделе "Питание".
Вот и я о том, что всё зависит от конкретной ситуации. От неё и точность формирования временных меток. Исходник где то можно увидеть?
последние исходники увидеть нельзя. очень старый исходник можно увидеть вот здесь: viewtopic.php?p=2741824#p2741824 но там программа гораздо проще последней версии. я тогда в начале 2016 года только начал осваивать АТмега8. и там совсем другие тайминги, чем сейчас. а дальнейшее развитие этого проекта стало уже в другой теме: viewtopic.php?f=11&t=138699. вторая моя большая тема: viewtopic.php?f=11&t=134419
_________________ Мудрость приходит вместе с импотенцией... Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
ага, стыдно. они не идут ни в какое сравнение с тем очень старым исходником. что такое ноу хау знаешь? вот там у меня есть мои ноу хау, которые я никому не покажу.
_________________ Мудрость приходит вместе с импотенцией... Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Ноу хау )))))) Ну можно хотя бы на словах, что за ноу хау? Я вижу проект выходного дня, если вы про регулируемый источник питания. Или измеритель емкости аккумов это мега секретная штука?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 23
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения