пока не выложишь листинг с uint8_t в левой части - разговаривать не о чем.
Оппонент, похоже, пошел вразнос...
Какой смысл мне выкладывать листинг, который уже присутствует в сообщении №67 и никто его сомнению не подвергает?
Пишете, просто чтобы хоть что-то написать?
Вопрос в том, откуда берется разница между листингом из сообщения №67 и листингом из сообщения №80?
Откуда во втором команды adc?
Вы утверждаете, что из-за левой части. Это в корне неверно. Что я проиллюстрировал сообщении №97. Хотя, если пользоваться логикой, и так понятно, что левая часть ну никак не может влиять на то, что вычисляется в правой части.
Подводя итог:
То, что содержится в листинге из сообщения №80 - общий случай. Если правая часть имеет другой тип, то:
- если uint8_t, то отсутствует строка 17,
- если uint16_t - происходит в точности то, что в листинге,
- если uint32_t - добавляется запись нулей в старшие два байта. Именно: не команда adc, а тупая запись нулей!
- если float - происходит преобразование uint16_t к соответствующему типу,
- если double - происходит преобразование uint16_t к соответствующему типу.
Т.е. общее правило действует в четырех случаях из пяти - перед вычислением суммы байтов они преобразуются в двухбайтовые величины (именно в двухбайтовые, а не в 4-байтовые и не 8-байтовые). А в единственном частном случае происходит по-другому: оптимизатор, обнаружив, что результат, получаемый в r25, нам не нужен, и последовательно удаляет строки 10, 12, 14 и 16. В результате мы получаем то, что видно в листинге из сообщения №67.
и что, есть какой-то шанс, что компилятор/оптимизатор видя byte = byte + byte; откомпилит кам-то иначе, чем просто сложить свои любимые 8bit регистры? не верю))
Читайте стандарт языка.
Впрочем, если "не верю", то даже и не знаю, чем можно Вам помочь.
я и говорил про оптимизатор и/или компилятор
а не про стандарты языка
ЭТО ЧЕТКО НАПИСАНО
вся остальная ересь - просто бла-бла-бла...
а вот это: "ты настолько тупой, что не знаю чем помочь" - тебе-же какашкой и вернулось)) эта твоя тупая фразочка - сам себе помоги, немощь. это оскорбление. не проверив помелом помел, да? потом, как проверил, дурака всю дорогу включаешь... зеколебал, на хер такое.
ЗЫ:да, там в кипятке и под странным поведением компилятора я прогнал про правую/левую часть. там я тебя читал по диагонали) признаю, раз ступил. счет размочен. 8:1 твоих 8. или 15 - сбился...
астанавитесь!)))
админ, очень нужно почистить топик от всякой ереси, и забанить меня навсегда за грубость, и это назойливого непонимающего написанное за чтение по диагонали)))
справедливо? а этого можно на месяц, пусть почитает а... а, чукча не читатель, чукча писатель...)))
ЗЗЫ: я серьезно, админ, бань меня. у меня дурной характер, и когда читают по диагонали и поучают меня не разобравшись - меня это реально бесит, и я иду вразнос. я опасен для форума)) чего за мной топики чистить? раз в три года))
не забанишь сейчас - создам топик в безделушках, руки чешутся. создам топик - полезут всякие) результат будет печален, чего тянуть?))
Все твои рассуждения о кривых даташитах, как оказалось - просто от того, что ты не знаешь языка Си
Все твои рассуждения. Основаны на том, что я счел правильным обозначить ошибку. При всём при этом, всё что я писал выше этого ответа, оно не являлось ошибочным.
Я мог бы не указывать на ошибку, а клеймить дном авторов, библиотек. Я бы наверное выглядел как гений в твоих глазах :))))
Все мои рассуждения о кривых даташитах верны на 100%, у тебя просто нет мозгов это понять и в этом разобраться... Вот и всё. Ты пытаешься уцепиться за мои оправдания. Я их делаю для галочки, а не потому что они хоть как-то уместны.
Я ошибку обозначил, и указал решение. Кому надо было, уже всё исправили и уехали дальше....
В DHT22, 5ым битом приходит контрольная сумма всех предыдущих четырех байт. И в библиотке, что от iarduino, что например от амперки, просто тупо складываются все четыре байта. В том корявом, даташите-переводе, сказано тоже самое.
Если реально посчитать то всё сойдется... в 8 случаях из 10 ;)
Но если немного поразмыслить... Как сумма четырех байт может вмещаться в один байт???? :)))
Да ни как! И ни как она не вмещается :) Просто в подавляющем количестве случаев, при положительной температуре, байты 2 и 4 пребывают на уровне 0... 1.. 2... и как правило сумма двух остальных не превосходит 255. Но когда влажность подкатывает к 50, 75 или 100, сумма перекатывает через 256. И мы получаем чек сумм еррор, хотя никаких проблем реально нет... но эта ошибка ни как не обрабатывается.
Вне зависимости от того что что второй байт DHT является знаковым, контрольная сумма считает тупо. Тупо байты, без знаков. Когда она 255 прешагивает, она отбрасывает младшие биты.
Это на самом деле весьма очевидно, когда все байты из DHT заводишь в сериал порт для контроля. Там это наглядно видно. Я сперва, сетуя на сутылый даташит думал что 5-й бит к температуре относится... Но проверил очень быстро.
То есть, если сумма 4-х битов 257, то 5-й бит будет 257-255, как-то так ;)))))
А пишут, что при чек сумме оказывается по модулю надо складывать сумму, между байтами... :)))
ты правда такой темный, что никогда не слыхал про сложение по модулю? Судя по по процитированной неуклюжей попытке пошутить - ты видно убежден, что "модуль" - это только число без знака. Да, это верно, так изучают в младших классах. Но тебе же не 10 лет...
Модуль в данном случае ничего общего со знаком не имеет.
Вот и выходит - не знаешь элементарнейших вещей, а берешься рассуждать о "ошибках в даташитах". И кто из нас "бла-бла кодер" ???
1.й пункт Когда я начал рассуждать о модулях, я специально и уточнил, что именно собеседник понимает под сложением по модулю.
2..й пункт. Да какая разница что я понимаю под модулем, есди ты считаешь 254+254=258 :)))))))))))))
Панимаешь всю абсурдность своей ереси???
Клуб знатаков принимает только правильные ответы :))) По модулю и без. Вопрос о чек сумме, андестенд?;))))
Мне вообще, ... что там написано в твоей ссылке... :))) Сумма байтов как считается???? ААА ??? Мне интересна сумма байтов, ане та шляпа что написана по твоей ссылке...
Байты в чек сумме как считаются, как я написал? Или как в твоей ссылке? ;)))))
Вот и выходит - не знаешь элементарнейших вещей, а берешься рассуждать о "ошибках в даташитах". И кто из нас "бла-бла кодер" ???
1.й пункт Когда я начал рассуждать о модулях, я специально и уточнил, что именно собеседник понимает под сложением по модулю.
2..й пункт. Да какая разница что я понимаю под модулем, есди ты считаешь 254+254=258 :)))))))))))))
Панимаешь всю абсурдность своей ереси???
Клуб знатаков принимает только правильные ответы :))) По модулю и без. Вопрос о чек сумме, андестенд?;))))
Мне вообще, ... что там написано в твоей ссылке... :))) Сумма байтов как считается???? ААА ??? Мне интересна сумма байтов, ане та шляпа что написана по твоей ссылке...
Байты в чек сумме как считаются, как я написал? Или как в твоей ссылке? ;)))))
Nord, если ты щас трезвый, сложи пожалуйста 254 + 254. калькулятором или в столбик. Что у тебя получилось?
можно ему это обьяснить.... особенно если за ошибки - сквородкой по башке.
Только ведь его гавнистый характер это не исправит. Он завтра уже опять будет считать, что он Дартаньян, а вокруг - лохи. Ты его на амперке не помнишь? Неделю вымучивал какой-то простенький код, а когда его стали посылать - обозвал всех "бла-бла кодерами". В итоге забанили его
Не ценим, ох не ценим...
пока не выложишь листинг с uint8_t в левой части - разговаривать не о чем.
Оппонент, похоже, пошел вразнос...
Какой смысл мне выкладывать листинг, который уже присутствует в сообщении №67 и никто его сомнению не подвергает?
Пишете, просто чтобы хоть что-то написать?
Вопрос в том, откуда берется разница между листингом из сообщения №67 и листингом из сообщения №80?
Откуда во втором команды adc?
Вы утверждаете, что из-за левой части. Это в корне неверно. Что я проиллюстрировал сообщении №97. Хотя, если пользоваться логикой, и так понятно, что левая часть ну никак не может влиять на то, что вычисляется в правой части.
Подводя итог:
То, что содержится в листинге из сообщения №80 - общий случай. Если правая часть имеет другой тип, то:
- если uint8_t, то отсутствует строка 17,
- если uint16_t - происходит в точности то, что в листинге,
- если uint32_t - добавляется запись нулей в старшие два байта. Именно: не команда adc, а тупая запись нулей!
- если float - происходит преобразование uint16_t к соответствующему типу,
- если double - происходит преобразование uint16_t к соответствующему типу.
чем-то этот срач напоминает мне срачи вокруг современной школьной программы.
Задачка - "1 грузовик везет 50 ящиков, сколько ящиков на двух грузовиках?"
Находятся люди (ПРЕПОДАВАТЕЛИ!!), которые на голубом глазу утверждают, что считать 50*2 = 100 - правильно. а 2*50 = 100 - НЕТ!
потому что якобы при умножении ящиков на грузовики получаются ящики, а при перестановке множителей - в результате грузовики....
Дебилы. нет?
Ordnung über alles
ну да
-Сколько будет дважды два? - Сорок четыре.
- Почему?
- Двадцать вам, двадцать мне, а четыре - в кассу. потому что в кассе должен быть порядок.
Впрочем, если "не верю", то даже и не знаю, чем можно Вам помочь.
а не про стандарты языка
ЭТО ЧЕТКО НАПИСАНО
вся остальная ересь - просто бла-бла-бла...
а вот это: "ты настолько тупой, что не знаю чем помочь" - тебе-же какашкой и вернулось)) эта твоя тупая фразочка - сам себе помоги, немощь. это оскорбление. не проверив помелом помел, да? потом, как проверил, дурака всю дорогу включаешь... зеколебал, на хер такое.
ЗЫ:да, там в кипятке и под странным поведением компилятора я прогнал про правую/левую часть. там я тебя читал по диагонали) признаю, раз ступил. счет размочен. 8:1 твоих 8. или 15 - сбился...
астанавитесь!)))
админ, очень нужно почистить топик от всякой ереси, и забанить меня навсегда за грубость, и это назойливого непонимающего написанное за чтение по диагонали)))
справедливо? а этого можно на месяц, пусть почитает а... а, чукча не читатель, чукча писатель...)))
ЗЗЫ: я серьезно, админ, бань меня. у меня дурной характер, и когда читают по диагонали и поучают меня не разобравшись - меня это реально бесит, и я иду вразнос. я опасен для форума)) чего за мной топики чистить? раз в три года))
не забанишь сейчас - создам топик в безделушках, руки чешутся. создам топик - полезут всякие) результат будет печален, чего тянуть?))
Находятся люди (ПРЕПОДАВАТЕЛИ!!), которые на голубом глазу утверждают, что считать 50*2 = 100 - правильно. а 2*50 = 100 - НЕТ!
Сразу вспомнилась рекомендация, что писать нужно не if(myValue == 1), а if(1 == myValue), дабы не пропустить ошибку "присваивание вместо сравнения".
и был разговор как-раз о ЧАСТНОМ СЛУЧАЕ - в один байт сумму 4-рех
Ну какой же это частный случай.... :)))
Это подсчет чек суммы... Две на вскидку взял библиотечки, и в обеих такое... вот...
А пишут, что при чек сумме оказывается по модулю надо складывать сумму, между байтами... :)))
А если я начну вещи своими именами называть... Не int, а int8_t :)))))))))))))))))))
Ну сдержанее нужно как-то быть :))))))))))))))))))))))
Ну сдержанее нужно как-то быть :))))))))))))))))))))))
дошло уже как сумма 4х байт 254 может поместится в один?
Нет, я искрене надеюсь, и верю, что ты прояснишь ;)
Я надеюсь увидеть в следующем ответе, либо код, либо объяснение ;) deal ? $)
Либо ты из Бла-бла кодеров, о чем я тебе еще говорил на флоруме амперке ;)
Нет, я искрене надеюсь, и верю, что ты прояснишь ;)
А смысл? Ты либо прикалываешься. либо настолько туп, что обьяснять бесполезно.
Все твои рассуждения о кривых даташитах, как оказалось - просто от того, что ты не знаешь языка Си
b707
Одьёёссс... Без абид
Либо ты из Бла-бла кодеров, о чем я тебе еще говорил на флоруме амперке ;)
иди книжки читай
Все твои рассуждения о кривых даташитах, как оказалось - просто от того, что ты не знаешь языка Си
Все твои рассуждения. Основаны на том, что я счел правильным обозначить ошибку. При всём при этом, всё что я писал выше этого ответа, оно не являлось ошибочным.
Я мог бы не указывать на ошибку, а клеймить дном авторов, библиотек. Я бы наверное выглядел как гений в твоих глазах :))))
Все мои рассуждения о кривых даташитах верны на 100%, у тебя просто нет мозгов это понять и в этом разобраться... Вот и всё. Ты пытаешься уцепиться за мои оправдания. Я их делаю для галочки, а не потому что они хоть как-то уместны.
Я ошибку обозначил, и указал решение. Кому надо было, уже всё исправили и уехали дальше....
Я ошибку обозначил, и указал решение. Кому надо было, уже всё исправили и уехали дальше....
там нет и не было никакой ошибки, ошибка только в твоем воспаленном мозгу
В DHT22, 5ым битом приходит контрольная сумма всех предыдущих четырех байт. И в библиотке, что от iarduino, что например от амперки, просто тупо складываются все четыре байта. В том корявом, даташите-переводе, сказано тоже самое.
Если реально посчитать то всё сойдется... в 8 случаях из 10 ;)
Но если немного поразмыслить... Как сумма четырех байт может вмещаться в один байт???? :)))
Да ни как! И ни как она не вмещается :) Просто в подавляющем количестве случаев, при положительной температуре, байты 2 и 4 пребывают на уровне 0... 1.. 2... и как правило сумма двух остальных не превосходит 255. Но когда влажность подкатывает к 50, 75 или 100, сумма перекатывает через 256. И мы получаем чек сумм еррор, хотя никаких проблем реально нет... но эта ошибка ни как не обрабатывается.
вот, я об этой жуткой чуши. что написана в цитате
Я ошибку обозначил, и указал решение. Кому надо было, уже всё исправили и уехали дальше....
там нет и не было никакой ошибки, ошибка только в твоем воспаленном мозгу
Мда... Че там было про сумму байтов?
дошло уже как сумма 4х байт 254 может поместится в один?
Не дошло, будь любезен проясни.... ;)
Не дошло, будь любезен проясни.... ;)
ну не тупи, тебе уже садман, андриано и прогрик все обьяснили неделю назад.
А я тебе писать ничего не буду. Я же "бла-бла кодер"... я тупицам готовый код не даю, только "бла-бла"
254 + 254 + 254 + 254 = 248
Не дошло, будь любезен проясни.... ;)
ну не тупи, тебе уже садман, андриано и прогрик все обьяснили неделю назад.
А я тебе писать ничего не буду. Я же "бла-бла кодер"... я тупицам готовый код не даю, только "бла-бла"
Я хотел бы лично от тебя, это услышать... "прочесть"... :)))
Ты можешь даже скопировать или процитировать их слова, если ты так уверен что они мне неделю назад что-то толковали по данному вопросу ;)
254 + 254 + 254 + 254 = 248
У меня нет слов :))))))))
254 + 254 + 254 + 254 = 248
Ты наугад решил ответить :)))) Смелое решение. А как же по модулю решение? ;)
почему только 254 а не 255... ну да ладно..... :))))
254 + 254 + 254 + 254 = 248
Ты наугад решил ответить :)))) Смелое решение. А как же по модулю решение? ;)
почему только 254 а не 255... ну да ладно..... :))))
это и есть по модулю. И не наугад вовсе - считается в уме легко.
255 + 255 + 255 + 255 = 252
Ты что, реально такой элементарной вещи не понимаешь??
b707
Я тебе поясню, чтобы ты как .... не выглядел...
Вне зависимости от того что что второй байт DHT является знаковым, контрольная сумма считает тупо. Тупо байты, без знаков. Когда она 255 прешагивает, она отбрасывает младшие биты.
Это на самом деле весьма очевидно, когда все байты из DHT заводишь в сериал порт для контроля. Там это наглядно видно. Я сперва, сетуя на сутылый даташит думал что 5-й бит к температуре относится... Но проверил очень быстро.
То есть, если сумма 4-х битов 257, то 5-й бит будет 257-255, как-то так ;)))))
А пишут, что при чек сумме оказывается по модулю надо складывать сумму, между байтами... :)))
ты правда такой темный, что никогда не слыхал про сложение по модулю? Судя по по процитированной неуклюжей попытке пошутить - ты видно убежден, что "модуль" - это только число без знака. Да, это верно, так изучают в младших классах. Но тебе же не 10 лет...
Модуль в данном случае ничего общего со знаком не имеет.
просвещайся:
https://studfile.net/preview/3816197/page:5/
Вне зависимости от того что что второй байт DHT является знаковым, контрольная сумма считает тупо. Тупо байты, без знаков.
ну точно, застрял в младшей школе... модуль для тебя - число без знака... других понятий не знаешь
это и называется "сложение по модулю", дурень. Только тбрасываются не младшие, а старшие
Вот и выходит - не знаешь элементарнейших вещей, а берешься рассуждать о "ошибках в даташитах". И кто из нас "бла-бла кодер" ???
Не пиши больше о чужих ошибках, читай учебники. Какой ты был темный на Амперке, такой и остался. А ведь наверно еще год прошел...
Все, я спать.
Вот и выходит - не знаешь элементарнейших вещей, а берешься рассуждать о "ошибках в даташитах". И кто из нас "бла-бла кодер" ???
1.й пункт Когда я начал рассуждать о модулях, я специально и уточнил, что именно собеседник понимает под сложением по модулю.
2..й пункт. Да какая разница что я понимаю под модулем, есди ты считаешь 254+254=258 :)))))))))))))
Панимаешь всю абсурдность своей ереси???
Клуб знатаков принимает только правильные ответы :))) По модулю и без. Вопрос о чек сумме, андестенд?;))))
Мне вообще, ... что там написано в твоей ссылке... :))) Сумма байтов как считается???? ААА ??? Мне интересна сумма байтов, ане та шляпа что написана по твоей ссылке...
Байты в чек сумме как считаются, как я написал? Или как в твоей ссылке? ;)))))
Все, я спать.
bb
Байты в чек сумме как считаются, как я написал? Или как в твоей ссылке? ;)))))
254 + 254 = 252
думай
Вот и выходит - не знаешь элементарнейших вещей, а берешься рассуждать о "ошибках в даташитах". И кто из нас "бла-бла кодер" ???
1.й пункт Когда я начал рассуждать о модулях, я специально и уточнил, что именно собеседник понимает под сложением по модулю.
2..й пункт. Да какая разница что я понимаю под модулем, есди ты считаешь 254+254=258 :)))))))))))))
Панимаешь всю абсурдность своей ереси???
Клуб знатаков принимает только правильные ответы :))) По модулю и без. Вопрос о чек сумме, андестенд?;))))
Мне вообще, ... что там написано в твоей ссылке... :))) Сумма байтов как считается???? ААА ??? Мне интересна сумма байтов, ане та шляпа что написана по твоей ссылке...
Байты в чек сумме как считаются, как я написал? Или как в твоей ссылке? ;)))))
Байты в чек сумме как считаются, как я написал? Или как в твоей ссылке? ;)))))
254 + 254 = 252
думай
Навести врачей....
думай
Видимо, он не обучен. Только моросить
DetSimen У вас что-то есть по теме? ;)
1.й пункт Когда я начал рассуждать о модулях, я специально и уточнил, что именно собеседник понимает под сложением по модулю.
не надо изворачиваться, 15 минут назад ты даже не подозревал, что существует какой-то другой модуль, кроме |x|
Панимаешь всю абсурдность своей ереси???
ты еще и считать не умеешь. Возьми калькулятор
Видимо, он не обучен. Только моросить
пипец, конечно.
Вот прям сквозь интернет вижу, как мозги скрипят - и все равно до человека не доходит.
и ведь не тролит - он реально тупой
Он ведь не тролит - он реально тупой
согласен 146%
не надо изворачиваться, 15 минут назад ты даже не подозревал, что существует какой-то другой модуль, кроме |x|
Да я и сейчас не подозреваю, что существует какой-то другой модуль :))))))
Он ведь не тролит - он реально тупой
согласен 146%
Ишите повод, чтобы забанить :))))
Да я и сейчас не подозреваю, что существует какой-то другой модуль :))))))
это не смешно...
Ишите повод, чтобы забанить :))))
для этого повод не нужен
b707, давай попробуем терпением и лаской
Nord, если ты щас трезвый, сложи пожалуйста 254 + 254. калькулятором или в столбик. Что у тебя получилось?
b707, давай попробуем терпением и лаской
Nord, если ты щас трезвый, сложи пожалуйста 254 + 254. калькулятором или в столбик. Что у тебя получилось?
можно ему это обьяснить.... особенно если за ошибки - сквородкой по башке.
Только ведь его гавнистый характер это не исправит. Он завтра уже опять будет считать, что он Дартаньян, а вокруг - лохи. Ты его на амперке не помнишь? Неделю вымучивал какой-то простенький код, а когда его стали посылать - обозвал всех "бла-бла кодерами". В итоге забанили его
b707, давай попробуем терпением и лаской
Nord, если ты щас трезвый, сложи пожалуйста 254 + 254. калькулятором или в столбик. Что у тебя получилось?
получилось 508
все остальные реплики, кроме ответов на мой вопрос я буду удалять.
Тебе что важней научиться или разосраца с b707?
получилось 508
вот. то есть 16ти битное число. Так?
Переведи его в HEX
все остальные реплики, кроме ответов на мой вопрос я буду удалять.
ок, удачи в обучении. а я все же спать, у нас уже почти четыре утра
У меня получилось 0x01FC. У тебя?
Ну и ???? Я складываю десятичные числа. С какого перепугу ты мне предлагаешь его перевести в 16 разрядное????
Побайтно, я вообще складывю байты.
ты складываешь два байта. но результат уже в 1 байт не влазит, для хранения всего результата уже нужно два байта 0x01 FC = 508 Dec
Так?