А по ссылке лишь самый простой и правильный способ этого избежать.
Т.е. при правильном подходе проблемы нет от слова совсем. ЧТД ))
Нет не так. Не при правильном подходе, а при написании кода учитывающего потенциальные баги.
Новичок напишет как ненадо, и получит баг. Я его пытался предупредить, это же раздел для новичков. Привели статью с правильным решением указав на верное решение с ссылкой на описание работы с беззнаковыми данными (unsigned) еще лучше.
4294967295/1000 = 4294967 секунд / 60 = 71582 минут /60 = 1193 часа / 24 = 49 суток.
Я полагаю, что конроль за такими вещами как температура в комнате с использованием котла на газе или палетах -будет работать на большей территории России в течении 4-6 месяцев в зависимости от региона. Вероятность что вы не отключите нагрев котла вас не пугает?
почитайте про без знаковую математику...нет никакого великого переполнения миллис при правильном кодировании...тема обсуждалась уже великое множество раз...
ЗЫ даже пример кода где-то тут есть, для проверки
4294967295/1000 = 4294967 секунд / 60 = 71582 минут /60 = 1193 часа / 24 = 49 суток.
Я полагаю, что конроль за такими вещами как температура в комнате с использованием котла на газе или палетах -будет работать на большей территории России в течении 4-6 месяцев в зависимости от региона. Вероятность что вы не отключите нагрев котла вас не пугает?
почитайте про без знаковую математику...нет никакого великого переполнения миллис при правильном кодировании...тема обсуждалась уже великое множество раз...
Вы последний комментарий читали?
Про великое множество раз, у меня есть прекрасные специалисты после лет работы и не менее великие множества которые перепутали volatile и static - просто по ошибке.
Достаточно не до конца понимать принципы беззнаковой математики, чтобы в один прекрасный день перепутать и попасться. Цель была в форуме новичков обозначить проблему. Каюсь, что для старожил пожалуй это было излишне, но надеюсь темозаводчику пригодится.
А по ссылке лишь самый простой и правильный способ этого избежать.
Т.е. при правильном подходе проблемы нет от слова совсем. ЧТД ))
Нет не так. Не при правильном подходе, а при написании кода учитывающего потенциальные баги.
Т.е. именно при правильном подходе. ЧТД.
Gromozeka пишет:
Новичок напишет как ненадо, и получит баг. Я его пытался предупредить, это же раздел для новичков. Привели статью с правильным решением указав на верное решение с ссылкой на описание работы с беззнаковыми данными (unsigned) еще лучше.
Ты его не предупредить попытался, а рассказал, что проблемы с миллис неизбежны. А мог бы и сам показать, как нужно правильно. Но тебе правильный подход был самому неведом )))
Так и остального писать не нужно было. В приведенных до твоих откровений фрагментах кода никаких проблем с миллис не могло быть по определению, т.к. все сделано по фэншую. Тебе просто поумничать захотелось, только место было выбрано неудачно ;)
Сынок, ты попал на форум старперов, здесь моложе 50 практически никого нету. Так что детские обидки засунь себе в причинное место, иначе тебя здесь начнут гнобить все, кто только дотянется до клавы. Оно тебе надо? )))
Родное сердце! Тебе показали, что переполнение, как и на циферблате, так и в случае UINT32 не чувствительно к вычитанию. Вместо того, чтобы сказать: "Ой, спасибо! Сто лет прожил, а о таком не подумал!" - что и ожидается, ты полез в неуклюжие оправдания.
Тут, как и во многих иных местах, метят "идиотом" не за незнания, а за неспособность признать ошибку. Над попыткой оправдаться - всегда будут глумиться.
Попытка оправдать в коде "проверку на переполнение" - всегда признак идиотизма. Нет никаких оправданий тому, что программист не знает о том, что можно вычитать, но нельзя складывать. Ты же не ходишь с костылем по улицам - "на всякий случай, чтобы не упасть"?
Мне_по#х, веришЪ?
Астынь, буть человеком - и буит_те_щастье. )))
Интересно, ты сможешь вычислить скока времени прошло между 00:05 и 23:58 предыдущего дня, или у тебя межушный ганглий переполнится?
Gromozeka
https://arduino.ru/forum/programmirovanie/velikoe-perepolnenie-millis
С millis для систем которые не планируется выключать...
Читал, что в Nano что-то вроде от 54 часов до 7 дней вроде в разных версиях.
...Система никогда не дождется той самой 1 секунды и залипнет...
https://arduino.ru/forum/programmirovanie/velikoe-perepolnenie-millis
PS. Из этого поста я было сделал вывод, что и с арифметикой у Вас не все в порядке, но, вроде, двумя постами ниже Вы исправились.
Уважаемые - по ссылке именно то, что требуется - я лишь напомнил человеку о ситуации.
Примеров кода который "не надо" делать масса, не только с неверным вычитанием.
Любая мелкая ошибка при написании приводит к тому, что переполнение может привести к ошибке.
А по ссылке лишь самый простой и правильный способ этого избежать.
А по ссылке лишь самый простой и правильный способ этого избежать.
Т.е. при правильном подходе проблемы нет от слова совсем. ЧТД ))
А по ссылке лишь самый простой и правильный способ этого избежать.
Т.е. при правильном подходе проблемы нет от слова совсем. ЧТД ))
Нет не так. Не при правильном подходе, а при написании кода учитывающего потенциальные баги.
Новичок напишет как ненадо, и получит баг. Я его пытался предупредить, это же раздел для новичков. Привели статью с правильным решением указав на верное решение с ссылкой на описание работы с беззнаковыми данными (unsigned) еще лучше.
опять великое переполнение миллис )))
В 32 битной системе максимум
4294967295/1000 = 4294967 секунд / 60 = 71582 минут /60 = 1193 часа / 24 = 49 суток.
Я полагаю, что конроль за такими вещами как температура в комнате с использованием котла на газе или палетах -будет работать на большей территории России в течении 4-6 месяцев в зависимости от региона. Вероятность что вы не отключите нагрев котла вас не пугает?
почитайте про без знаковую математику...нет никакого великого переполнения миллис при правильном кодировании...тема обсуждалась уже великое множество раз...
ЗЫ даже пример кода где-то тут есть, для проверки
опять великое переполнение миллис )))
В 32 битной системе максимум
4294967295/1000 = 4294967 секунд / 60 = 71582 минут /60 = 1193 часа / 24 = 49 суток.
Я полагаю, что конроль за такими вещами как температура в комнате с использованием котла на газе или палетах -будет работать на большей территории России в течении 4-6 месяцев в зависимости от региона. Вероятность что вы не отключите нагрев котла вас не пугает?
почитайте про без знаковую математику...нет никакого великого переполнения миллис при правильном кодировании...тема обсуждалась уже великое множество раз...
Вы последний комментарий читали?
Про великое множество раз, у меня есть прекрасные специалисты после лет работы и не менее великие множества которые перепутали volatile и static - просто по ошибке.
Достаточно не до конца понимать принципы беззнаковой математики, чтобы в один прекрасный день перепутать и попасться. Цель была в форуме новичков обозначить проблему. Каюсь, что для старожил пожалуй это было излишне, но надеюсь темозаводчику пригодится.
А по ссылке лишь самый простой и правильный способ этого избежать.
Т.е. при правильном подходе проблемы нет от слова совсем. ЧТД ))
Нет не так. Не при правильном подходе, а при написании кода учитывающего потенциальные баги.
Т.е. именно при правильном подходе. ЧТД.
Новичок напишет как ненадо, и получит баг. Я его пытался предупредить, это же раздел для новичков. Привели статью с правильным решением указав на верное решение с ссылкой на описание работы с беззнаковыми данными (unsigned) еще лучше.
Ты его не предупредить попытался, а рассказал, что проблемы с миллис неизбежны. А мог бы и сам показать, как нужно правильно. Но тебе правильный подход был самому неведом )))
Поэтому если наступит переполнение - от новые данные millis после перехода из-за переполнения на 0 - будут всегда меньше старых
...идиот. И ведь специально зарегистрировался, чтобы всем свой идиотизм показать. Значит идиот с амбициями! Мой респект!
проблемы с миллис неизбежны
Я этого не писал.
...идиот.
Приятно познакомится.
проблемы с миллис неизбежны
Я этого не писал.
Так и остального писать не нужно было. В приведенных до твоих откровений фрагментах кода никаких проблем с миллис не могло быть по определению, т.к. все сделано по фэншую. Тебе просто поумничать захотелось, только место было выбрано неудачно ;)
Приятно познакомится.
Сожалею, что могу ответить взаимностью... ;)
Так и остального писать не нужно было.
Мама тобой гордится наверное?
Сожалею, что могу ответить взаимностью..
Печально :)))
Так и остального писать не нужно было.
Мама тобой гордится наверное?
Сынок, ты попал на форум старперов, здесь моложе 50 практически никого нету. Так что детские обидки засунь себе в причинное место, иначе тебя здесь начнут гнобить все, кто только дотянется до клавы. Оно тебе надо? )))
Так и остального писать не нужно было.
Мама тобой гордится наверное?
Сожалею, что могу ответить взаимностью..
Печально :)))
Родное сердце! Тебе показали, что переполнение, как и на циферблате, так и в случае UINT32 не чувствительно к вычитанию. Вместо того, чтобы сказать: "Ой, спасибо! Сто лет прожил, а о таком не подумал!" - что и ожидается, ты полез в неуклюжие оправдания.
Тут, как и во многих иных местах, метят "идиотом" не за незнания, а за неспособность признать ошибку. Над попыткой оправдаться - всегда будут глумиться.
Попытка оправдать в коде "проверку на переполнение" - всегда признак идиотизма. Нет никаких оправданий тому, что программист не знает о том, что можно вычитать, но нельзя складывать. Ты же не ходишь с костылем по улицам - "на всякий случай, чтобы не упасть"?
Так и остального писать не нужно было.
вообще писать не надо было, а то ведь получилось как в русской пословице:
"слышал звон но не знает где он"...