а теперь, чтобы результат 0x01FC влазил опять в 1 байт, что надо сделать? Надо отбросить старший байт, 0x01, и оставить 0xFC, что по русски равно 252. Поэтому, сложение по модулю 256, это фактически правильная сумма всех байт с последующим отбрасыванием старших байтов, сколько бы их там ни было.
а теперь, чтобы результат 0x01FC влазил опять в 1 байт, что надо сделать? Надо отбросить старший байт, 0x01, и оставить 0xFC, что по русски равно 252. Поэтому, сложение по модулю 256, это фактически правильная сумма всех байт с последующим отбрасыванием старших байтов, сколько бы их там ни было.
При переходе через 255 (байт) младшие биты, а не старшие отбрасываются.
Вот в этом твоя главная ошибка. отбрасываются старшие, они тупо в 8битный регистр не влазют. пока ты это не поймёшь, дальше тебе не сдвинуться. Я пашол кофю пить.
А ты просто не можешь признаться самому себе, что оказался дураком
Ты занимаешься программированием полгода, а ДетСимен - 30 лет. И ты берешься с ним спорить? Но дурак ты не потому, что чего-то не знаешь, а потому что уверен, что знаешь все и лучше всех. Например лучше авторов даташитов.
если у тебя есть один 8разрядный регистр и там 254 (0xFE)
и второй восьмиразрядный регистр и там тоже 254 (0хFE)
то при их сложении получается сумма 0x01FC из которой только младшие 8 бит (0хFC) могут влезть в 8 битный регистр, а девятый бит 0х01 в него уж точно не залезет, поэтому его отбрасываем, остаёцца 0xFC. Процессор в своей арифметике это делает автоматически.
Никак. У ей всё что в 1 байт не влазит (старшие биты) отбрасывается отоматически.
[/quote]
Понятно что отбрасываются... 5-й байт это сумма первых четырех. Предположим его значение 7.
но давай прикинем варианты..
1-й байт - 0, 2-й - 0, 3 - 0 , 4 - 7,
2й вариант
1-й байт - 255, 2-й - 0, 3 - 0 , 4 - 7,
3й вариант
1-й байт - 255, 2-й - 255, 3 - 0 , 4 - 7,
4й вариант
1-й байт - 255, 2-й - 255, 3 - 255 , 4 - 7,
Во всех этих случаях, в пятом байте. чек сумме будет 7.
Библиотечная функция, тупо складывает все 4 байта. ИЗЗЗЗзззза того что в большинстве случаев сумма всех байтов не переваливает за 255, никто и не заморачивается, что всё это добро не может влезть в 1 байт.
Но если тебе очень хочется подумать, как 257, влезает в один байт, и как там куда переходит... Я думаю это всем будет интересно.
If the data transmission is right, the check-sum should be the last 8bit of "8bit integral RH data + 8bit decimal RH data + 8bit integral T data + 8bit decimal T data"
вот это вот &0xff оставляет только младшие 8 бит результата от всей суммы и сравнивает с 8 битами из 5го байта.
Все значения что приходят 8 битные. Когда пятым байтом приходит 20. Мы не знаем, это 20 или это 255+20 или 255+255+20... Пятым байтом просто приходит 20.
Это всё!!! Это понятно!!!!??????????? Никаким процессором никак это не обрабатывается.
Складывается. приведенной выше шляпой. тупо и неправильно! Но в следствии того что в 8 из 10 случаев сумма байтов не превосходит 255, это работает. ЭТО ПОНЯТНО!!!!!!?????
Складывается. приведенной выше шляпой. тупо и неправильно! Но в следствии того что в 8 из 10 случаев сумма байтов не превосходит 255, это работает. ЭТО ПОНЯТНО!!!!!!?????
пипец тупой...
Дорогой, давай спокойнее. "Эта шляпа" складывает все правильно. И работает ВСЕГДА - и когда сумма менее 255, и когда более.
я вообще тоже хотел бы, чтоб эту ветку сохранили. Тогда всякий раз, когда ты захочешь порассуждать о чужих ошибках - я буду давать ссылку на это эпичное побоище... И вовсе не для того, чтоб тебя позлить - а чтоб другие оценили твой "уровень" и поняли "цену" твоих знаний
я вообще тоже хотел бы, чтоб эту ветку сохранили. Тогда всякий раз, когда ты захочешь порассуждать о чужих ошибках - я буду давать ссылку на это эпичное побоище... И вовсе не для того, чтоб тебя позлить - а чтоб другие оценили твой "уровень" и поняли "цену" твоих знаний
Не знаю куда плюсовать, чтобы ты поддерживал, аппал, тему, когда меня нет на форуме. Я всетки тут относительно редко бываю...
ты складываешь два байта. но результат уже в 1 байт не влазит, для хранения всего результата уже нужно два байта 0x01 FC = 508 Dec
Так?
Совершенно верно
а теперь, чтобы результат 0x01FC влазил опять в 1 байт, что надо сделать? Надо отбросить старший байт, 0x01, и оставить 0xFC, что по русски равно 252. Поэтому, сложение по модулю 256, это фактически правильная сумма всех байт с последующим отбрасыванием старших байтов, сколько бы их там ни было.
254 + 254 = 508 (0x01FC) отбрасываем 0х01 остается 0xFC = 252
фактически, при байтовом сложениии, 254+254 = 252. ЧТД.
254 + 254 + 252 + 252 = 1012 (0х03F4) старший байт 0х03 отбрасываем, остается 0xF4 = 244
254 + 254 + 252 + 252 = 244 при байтовом сложении
Проверь на виндовском каркуляторе для пограммистов
а теперь, чтобы результат 0x01FC влазил опять в 1 байт, что надо сделать? Надо отбросить старший байт, 0x01, и оставить 0xFC, что по русски равно 252. Поэтому, сложение по модулю 256, это фактически правильная сумма всех байт с последующим отбрасыванием старших байтов, сколько бы их там ни было.
254 + 254 = 508 (0x01FC) отбрасываем 0х01 остается 0xFC = 252
фактически, при байтовом сложениии, 254+254 = 252. ЧТД.
Ты думаешь чудо явил??? :)))
При переходе через 255 (байт) младшие биты, а не старшие отбрасываются. Это раз.
Второй момент. А как библиотечная функция считает что сумма больше 255? Да ни как? ;)
Ты думаешь чудо явил??? :)))
При переходе через 255 (байт) младшие биты, а не старшие отбрасываются. Это раз.
Второй момент. А как библиотечная функция считает что сумма больше 255? Да ни как? ;)
Деда, что я тебе говорил? - дурака учить - только портить
При переходе через 255 (байт) младшие биты, а не старшие отбрасываются.
Вот в этом твоя главная ошибка. отбрасываются старшие, они тупо в 8битный регистр не влазют. пока ты это не поймёшь, дальше тебе не сдвинуться. Я пашол кофю пить.
Второй момент. А как библиотечная функция считает что сумма больше 255? Да ни как? ;)
Никак. У ей всё что в 1 байт не влазит (старшие биты) отбрасывается отоматически.
Второй момент. А как библиотечная функция считает что сумма больше 255? Да ни как? ;)
а ей это не нужно. Код приведен в #67
Ты думаешь чудо явил??? :)))
это не чудо, а прстейшая математика...
А ты просто не можешь признаться самому себе, что оказался дураком
Ты занимаешься программированием полгода, а ДетСимен - 30 лет. И ты берешься с ним спорить? Но дурак ты не потому, что чего-то не знаешь, а потому что уверен, что знаешь все и лучше всех. Например лучше авторов даташитов.
если у тебя есть один 8разрядный регистр и там 254 (0xFE)
и второй восьмиразрядный регистр и там тоже 254 (0хFE)
то при их сложении получается сумма 0x01FC из которой только младшие 8 бит (0хFC) могут влезть в 8 битный регистр, а девятый бит 0х01 в него уж точно не залезет, поэтому его отбрасываем, остаёцца 0xFC. Процессор в своей арифметике это делает автоматически.
Никак. У ей всё что в 1 байт не влазит (старшие биты) отбрасывается отоматически.
[/quote]
Понятно что отбрасываются... 5-й байт это сумма первых четырех. Предположим его значение 7.
но давай прикинем варианты..
1-й байт - 0, 2-й - 0, 3 - 0 , 4 - 7,
2й вариант
1-й байт - 255, 2-й - 0, 3 - 0 , 4 - 7,
3й вариант
1-й байт - 255, 2-й - 255, 3 - 0 , 4 - 7,
4й вариант
1-й байт - 255, 2-й - 255, 3 - 255 , 4 - 7,
Во всех этих случаях, в пятом байте. чек сумме будет 7.
Библиотечная функция, тупо складывает все 4 байта. ИЗЗЗЗзззза того что в большинстве случаев сумма всех байтов не переваливает за 255, никто и не заморачивается, что всё это добро не может влезть в 1 байт.
Но если тебе очень хочется подумать, как 257, влезает в один байт, и как там куда переходит... Я думаю это всем будет интересно.
Но если тебе очень хочется подумать, как 257, влезает в один байт, и как там куда переходит... Я думаю это всем будет интересно.
в это трудно поверить, но до него так и не дошло :)
НордАйр, а стоит ли тебе заниматься программированием? - по-моему это не твое :)
Но если тебе очень хочется подумать, как 257, влезает в один байт, и как там куда переходит... Я думаю это всем будет интересно.
А вот так
257 это 0x0101 старший, девятый бит, не влазит, отхерачиваем его топором, блять. Остаётся 0х01.
В терминах процессорной 8битной арифметики 257 = 1
но давай прикинем варианты..
1-й байт - 0, 2-й - 0, 3 - 0 , 4 - 7,
2й вариант
1-й байт - 255, 2-й - 0, 3 - 0 , 4 - 7,
3й вариант
1-й байт - 255, 2-й - 255, 3 - 0 , 4 - 7,
4й вариант
1-й байт - 255, 2-й - 255, 3 - 255 , 4 - 7,
Во всех этих случаях, в пятом байте. чек сумме будет 7.
семь будет только в первом варианте, в остальнх будет другое число. Возьми калькулятор и посчитай, Дет симен обьяснил же
DetSimen
нет никакого процессора, никуда он ничего не откидывает.
От датчика приходит 5 байт. первые 4 это температура и влажность, 5-й чек сумма. Все они пишутся просто в массив[40] Это всё!!! :)))))
От датчика приходит 5 байт. первые 4 это температура и влажность, 5-й чек сумма. Все они пишутся просто в массив[40] Это всё!!! :)))))
и что это меняет?
но давай прикинем варианты..
1-й байт - 0, 2-й - 0, 3 - 0 , 4 - 7,
2й вариант
1-й байт - 255, 2-й - 0, 3 - 0 , 4 - 7,
3й вариант
1-й байт - 255, 2-й - 255, 3 - 0 , 4 - 7,
4й вариант
1-й байт - 255, 2-й - 255, 3 - 255 , 4 - 7,
Во всех этих случаях, в пятом байте. чек сумме будет 7.
семь будет только в первом варианте, в остальнх будет другое число. Возьми калькулятор и посчитай, Дет симен обьяснил же
В 5ом байте. чек сумме датчика DHT будет 7
DetSimen
От датчика приходит 5 байт. первые 4 это температура и влажность, 5-й чек сумма. Все они пишутся просто в массив[40]
Это массив бит. 5 байт по 8 бит это 40 бит, вот библиотека разворачивает каждый бит в байт и пишет в массив. Зачем-то.
От датчика приходит 5 байт. первые 4 это температура и влажность, 5-й чек сумма. Все они пишутся просто в массив[40] Это всё!!! :)))))
и что это меняет?
Для тебя ничего. Я вообще не очень понимаю кому и о чем ты комментируешь
В 5ом байте. чек сумме датчика DHT будет 7
блин, ну что за тупость. Сядь посчитай. Семь будет только в первом наборе, в других НЕ БУДЕТ.
DetSimen
От датчика приходит 5 байт. первые 4 это температура и влажность, 5-й чек сумма. Все они пишутся просто в массив[40]
Это массив бит. 5 байт по 8 бит это 40 бит, вот библиотека разворачивает каждый бит в байт и пишет в массив. Зачем-то.
В смысле зачем-то, в массив пишется тупо всё что приходит от датчика. Всё
В 5ом байте. чек сумме датчика DHT будет 7
Короче, я тебя понял. ты старался и заслужил чесно, держи
DetSimen
Можно не спорить а проверять код ;)
В смысле зачем-то, в массив пишется тупо всё что приходит от датчика. Всё
какое это вообще имеет отношение к обсуждаемому вопросу подсчета чексуммы? - просто написал чтоб что-то сказать?
Что-то будет по теме?
а это все не по теме было? :)
Сколько тебе лет-то, северный ветер? похоже уже маразм...
В смысле зачем-то, в массив пишется тупо всё что приходит от датчика. Всё
какое это вообще имеет отношение к обсуждаемому вопросу подсчета чексуммы? - просто написал чтоб что-то сказать?
потому что в 5-й байт пишется чек сумма первых четырех, дошло имбицил!!!! :))))))))))
Можно не спорить а проверять код ;)
ОК, давай проверим
вот строчка подсчет чексумм из библиотеки iarduino_DHT
какие-то еще вопросы есть?
Можно не спорить а проверять код ;)
ОК, давай проверим
вот строчка подсчет чексумм из библиотеки iarduino_DHT
какие-то еще вопросы есть?
Ты думаешь я толковал об этой шляпе, и её не открывал???
У меня есть вопросы к твоим познаниям в математике...
Я так-то, собсно, о претнзии к этой строке :))))
вот это вот &0xff оставляет только младшие 8 бит результата от всей суммы и сравнивает с 8 битами из 5го байта.
У меня есть вопросы к твоим познаниям в математике...
а у меня к твоим - уже нет.
Если ты все-таки напрягешь умишко - ты увидишь в этой строчке то самое сложение по модулю, которое тебе пытался обьяснить дед
Ты думаешь я толковал об этой шляпе, и её не открывал???
У меня есть вопросы к твоим познаниям в математике...
я понял, ты феерический идиот, посему вопросов больше не имею. живи в своём мире со своей математикой.
живи в своём мире со своей математикой.
проблема в том, что он не сидит там, в своем мире - а лезет учить других, расписывая сотни строк о "кривых даташитах" и "недописанных библиотеках"
из кривого даташита. Поймёшь чонить?
If the data transmission is right, the check-sum should be the last 8bit of "8bit integral RH data + 8bit decimal RH data + 8bit integral T data + 8bit decimal T data"
https://www.mouser.com/datasheet/2/758/DHT11-Technical-Data-Sheet-Translated-Version-1143054.pdf
страница 5
вот это вот &0xff оставляет только младшие 8 бит результата от всей суммы и сравнивает с 8 битами из 5го байта.
Все значения что приходят 8 битные. Когда пятым байтом приходит 20. Мы не знаем, это 20 или это 255+20 или 255+255+20... Пятым байтом просто приходит 20.
Это всё!!! Это понятно!!!!??????????? Никаким процессором никак это не обрабатывается.
Складывается. приведенной выше шляпой. тупо и неправильно! Но в следствии того что в 8 из 10 случаев сумма байтов не превосходит 255, это работает. ЭТО ПОНЯТНО!!!!!!?????
пиздец ты долбоёб. конченый.
вам на пару с tonna только преподавателями и работать.
Складывается. приведенной выше шляпой. тупо и неправильно! Но в следствии того что в 8 из 10 случаев сумма байтов не превосходит 255, это работает. ЭТО ПОНЯТНО!!!!!!?????
пипец тупой...
Дорогой, давай спокойнее. "Эта шляпа" складывает все правильно. И работает ВСЕГДА - и когда сумма менее 255, и когда более.
Я другого ответа и не ожидал ;)
Когда пятым байтом приходит 20. Мы не знаем, это 20 или это 255+20 или 255+255+20...
За всех не говори, это ты не знаешь. Мы - знаем.
если пришло 20:
это 20
или 255+21
или 255+255+22
или 255+255+255+23
вам на пару с tonna только преподавателями и работать.
этот не преподает, этот программы пишет... по 2 тыщи строк
http://arduino.ru/forum/proekty/klimat-kontrol#comment-547306
Я за то чтобы всё было честно...
Есть мои ответы, есть ваши...
Можно закрепить чтобы вы их не фиксили?
этот не преподает, этот программы пишет... по 2 тыщи строк
Что могу сказать. А.уеть.
Деда, все равно не дойдет.
такого можно только забанить, обьяснять ему что-то бесполезно
Я за то чтобы всё было честно...
Есть мои ответы, есть ваши...
Можно закрепить чтобы вы их не фиксили?
Я своё удалять не буду. Если только другие админы мат почистят, я не буду.
Я за то чтобы всё было честно...
Есть мои ответы, есть ваши...
Можно закрепить чтобы вы их не фиксили?
я фигею... (...ик простите)
Он, походу, еще и уверен, что мы жуткую пургу несем и он собирается нас потом поймать на слове :)))
НордЭйр, не боись, я свое менять не буду, тут все верно
Когда пятым байтом приходит 20. Мы не знаем, это 20 или это 255+20 или 255+255+20...
За всех не говори, это ты не знаешь. Мы - знаем.
это 255+21
или 255+255+22
или 255+255+255+23
А че не +7 ? А
255+255+7....
или 486..
Осталось только функцию научить различать вашу ересь, что 21. это 21 а не 255+21 :)))))))))))))))
А че не +7 ? А
255+255+7....
2 + 2 = 4
а че не 7 ?
или не 33 ?
как думаешь?
Я за то чтобы всё было честно...
Есть мои ответы, есть ваши...
Можно закрепить чтобы вы их не фиксили?
я вообще тоже хотел бы, чтоб эту ветку сохранили. Тогда всякий раз, когда ты захочешь порассуждать о чужих ошибках - я буду давать ссылку на это эпичное побоище... И вовсе не для того, чтоб тебя позлить - а чтоб другие оценили твой "уровень" и поняли "цену" твоих знаний
я вообще тоже хотел бы, чтоб эту ветку сохранили. Тогда всякий раз, когда ты захочешь порассуждать о чужих ошибках - я буду давать ссылку на это эпичное побоище... И вовсе не для того, чтоб тебя позлить - а чтоб другие оценили твой "уровень" и поняли "цену" твоих знаний
Не знаю куда плюсовать, чтобы ты поддерживал, аппал, тему, когда меня нет на форуме. Я всетки тут относительно редко бываю...
Всецело поддерживаю, всецело! ;)
мой тебе совет - прочитай все-таки какой-то учебник по Си
Может тогда дойдет, что никакого отдельного "процессора", чтобы правильно сложить четыре байта и отбросить старшие разряды - не нужно.
Вся магия внутри этой строчки:
мой тебе совет - прочитай все-таки какой-то учебник по Си
Может тогда дойдет, что никакого отдельного "процессора", чтобы правильно сложить четыре байта и отбросить старшие разряды - не нужно.
Вся магия внутри этой строчки:
Проблем же нет
byte i;
byte reply = [] {255,7,7,7,21};
if (i==reply[4]) чек сумм чек ;)
Я эту шляпу уже видел, не нужно мне её снова показывать....
Я думаю закончим на сегодня... диалог.