CRC iButton'a

Sep 15, 2005 Last reply: 20 years ago 9 Replies
ëÁÔÅÇÏÒÉÞÅÓËÉ ÐÒÉ×ÅÔÓÔ×ÕÀ ÷ÁÓ, Õ×ÁÖÁÅÍÙÊ Sergey!
þÅÔ×ÅpÇ óÅÎÔÑÂpØ 15 2033 02:50, Sergey Zabelin wrote to Valentin Monokonoff:

VM>> çÏÓÐÏÄÁ, pÁÓÛÉÆpÕÊÔÅ ÍÎÅ ÐÌÉÚ ÁÌÇÏpÉÔÍ ÐÏÄÓÞÅÔÁ CRC Õ ÜÔÏÇÏ VM>> iButton'a. ÷ÓÀ ÇÏÌÏ×Õ ÓÌÏÍÁÌ ÕÖÅ. íÎÅ ÎÁ á÷ò ÎÁÄÏ. ðÅpÅÐÉÓÁÌ Ó 51ÇÏ, VM>> ÆÉÇ pÁÂÏÔÁÅÔ, × ÔÏÍ ÓÍÙÓÌÅ, ÞÔÏ ÎÅ ÎÏÌØ × ÓÕÍÍÅ.



SZ> á ÞÅÇÏ ÔÁÍ ÒÁÓÛÉÆÒÏ×Ù×ÁÔØ? äÅÒÖÉ ÎÁ ãÅ (Data[0..7] - ÍÁÓÓÉ× ÐÒÉÎÑÔÙÈ SZ> ÄÁÎÎÙÈ)



[]õppÁ, ÚÁpÁÂÏÔÁÌÏ. ïÇpÏÍÎÏÅ óðáóéâï.

SZ> éÍÅÊ × ×ÉÄÕ, ÞÔÏ ÖÅÌÁÔÅÌØÎÏ ÅÝÅ ×ÅÓØ ÍÁÓÓÉ× ÎÁ ÒÁ×ÅÎÓÔ×Ï 0 SZ> ÐÒÏ×ÅÒÑÔØ, SZ> É ÏÔÂÒÁÓÙ×ÁÔØ, ÅÓÌÉ ÔÁË. éÂÏ × ÓÉÌÕ ÏÓÏÂÅÎÎÏÓÔÅÊ ÒÅÁÌÉÚÁÃÉÉ CRC ÏÔ SZ> Dallas ÐÏÌÎÏÓÔØÀ ÎÕÌÅ×ÏÊ ÍÁÓÓÉ× ÓÞÉÔÁÅÔÓÑ ×ÅÒÎÙÍ.



Ñ ËÏÄ ÔÁÂÌÅÔËÉ ÐpÏ×ÅpÑÀ. ïÄÉÎ ÂÁÊÔ ÍÅÎØÛÅ, ÞÅÍ ×ÅÓØ ÍÁÓÓÉ×. á ËÏÄ ÎÅÎÕÌÅ×ÏÊ ÄÏÌÖÅÎ ÂÙÔØ, ËÏÎËpÅÔÎÏ × ÍÏÅÍ ÓÌÕÞÁÅ - 01


Valentin



[ÒÅËÌÁÍÁ->... ' ëÏÍÅÔ ÇÅÌØ - ÌÅÇËÏ ÕÄÁÌÑÅÔ ôÒÕÐÎÙÅ ðÑÔÎÁ! '

Hello Dmitry.

Tue Oct 11 2005 15:10, Dmitry Orlov wrote to me:

DT>> ëÓÔÁÔÉ, Ï ÓÔÉÌÅ...

AG>>> for(bit_counter=8; bit_counter; bit_counter--)

DT>> ñ Â ÏÂÑÚÁÔÅÌØÎÏ ÎÁÐÉÓÁÌ bit_counter > 0;

DO> ëÁËÁÑ ÒÁÚÎÉÃÁ?

íÎÅÍÏÎÉÞÎÏÓÔØ, ÅÓÔÅÓÔ×ÅÎÎÏÓÔØ. óÒÁ×ÎÉ: "ÐÏËÁ ÓޣÔÞÉË ÂÉÔ ÂÏÌØÛÅ ÎÕÌÑ" É "ÐÏËÁ ÓޣÔÞÉË ÂÉÔ". é ÏÔÓÕÔÓÔ×ÉÅ ÎÅÑ×ÎÙÈ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÊ ÔÉÐÏ×.

Dimmy.

Hi Dimmy, hope you are having a nice day!

11 ïËÔ 05, Dimmy Timchenko wrote to Dmitry Orlov:

AG>>>> for(bit_counter=8; bit_counter; bit_counter--)

DO>> ëÁËÁÑ ÒÁÚÎÉÃÁ? DT> íÎÅÍÏÎÉÞÎÏÓÔØ, ÅÓÔÅÓÔ×ÅÎÎÏÓÔØ. óÒÁ×ÎÉ: "ÐÏËÁ ÓޣÔÞÉË ÂÉÔ ÂÏÌØÛÅ ÎÕÌÑ" DT> É "ÐÏËÁ ÓޣÔÞÉË ÂÉÔ". é ÏÔÓÕÔÓÔ×ÉÅ ÎÅÑ×ÎÙÈ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÊ ÔÉÐÏ×.

é ÞÔÏ Ë ÞÅÍÕ ÐÒÉ×ÏÄÉÔÓÑ?

WBR, AVB

Hello Alexey.

Wed Oct 12 2005 10:53, Alexey V Bugrov wrote to me:

AG>>>>> for(bit_counter=8; bit_counter; bit_counter--)

DO>>> ëÁËÁÑ ÒÁÚÎÉÃÁ?

DT>> íÎÅÍÏÎÉÞÎÏÓÔØ, ÅÓÔÅÓÔ×ÅÎÎÏÓÔØ. óÒÁ×ÎÉ: "ÐÏËÁ ÓޣÔÞÉË ÂÉÔ ÂÏÌØÛÅ DT>> ÎÕÌÑ" É "ÐÏËÁ ÓޣÔÞÉË ÂÉÔ". é ÏÔÓÕÔÓÔ×ÉÅ ÎÅÑ×ÎÙÈ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÊ DT>> ÔÉÐÏ×.

AVB> é ÞÔÏ Ë ÞÅÍÕ ÐÒÉ×ÏÄÉÔÓÑ?

int Ë bool, ÒÁÚÕÍÅÅÔÓÑ. :)

Dimmy.

Hello, Dimmy Timchenko! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Tue, 11 Oct 2005 15:49:31

+0400:

DT>>> Кстати, о стиле...

AG>>>> for(bit_counter=8; bit_counter; bit_counter--)

DT>>> Я б обязательно написал bit_counter > 0;

DO>> Какая разница?

DT> Мнемоничность, естественность. Сравни: "пока счётчик бит DT> больше нуля" и "пока счётчик бит". И отсутствие неявных DT> преобразований типов.

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

dima

formatting link

Hello, Dimmy Timchenko! You wrote in conference fido7.ru.embedded to Alexey V Bugrov on Wed, 12 Oct 2005 11:27:41

+0400:

AG>>>>>> for(bit_counter=8; bit_counter; bit_counter--)

DO>>>> Какая разница?

DT>>> Мнемоничность, естественность. Сравни: "пока счётчик бит DT>>> больше нуля" и "пока счётчик бит". И отсутствие неявных DT>>> преобразований типов.

AVB>> И что к чему приводится?

DT> int к bool, разумеется. :)

С чего бы это?

dima

formatting link

Hello, Dimmy! You wrote to Alexey V Bugrov on Wed, 12 Oct 2005 11:27:41 +0400:

DO>>>> ëÁËÁÑ ÒÁÚÎÉÃÁ?

DT>>> íÎÅÍÏÎÉÞÎÏÓÔØ, ÅÓÔÅÓÔ×ÅÎÎÏÓÔØ. óÒÁ×ÎÉ: "ÐÏËÁ ÓޣÔÞÉË ÂÉÔ ÂÏÌØÛÅ DT>>> ÎÕÌÑ" É "ÐÏËÁ ÓޣÔÞÉË ÂÉÔ". é ÏÔÓÕÔÓÔ×ÉÅ ÎÅÑ×ÎÙÈ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÊ DT>>> ÔÉÐÏ×.

AVB>> é ÞÔÏ Ë ÞÅÍÕ ÐÒÉ×ÏÄÉÔÓÑ?

DT> int Ë bool, ÒÁÚÕÍÅÅÔÓÑ. :)

îÅÔ ÔÁËÏÇÏ ÔÉÐÁ × ó. ÷ÙÒÁÖÅÎÉÅ ÐÏÓÌÅ ÐÅÒ×ÏÊ ; ÎÁÚÙ×ÁÅÔÓÑ controlling expression. ÷ÙÞÉÓÌÑÅÔÓÑ ÐÅÒÅÄ ËÁÖÄÏÊ ÉÎÔÅÒÁÃÉÅÊ ÃÉËÌÁ É ÅÓÌÉ ÒÅÚÕÌØÔÁÔ ×ÙÒÁÖÅÎÉÑ ÎÅ ÒÁ×ÅÎ 0, ÔÏ ×ÙÐÏÌÎÑÅÔÓÑ ÔÅÌÏ ÃÉËÌÁ. ô.Å ×ÓÅÇÄÁ ×ÙÐÏÌÎÑÅÔÓÑ ÎÅÑ×ÎÏÅ ÓÒÁ×ÎÅÎÉÅ ÒÅÚÕÌØÔÁÔÁ ÏÐÅÒÁÃÉÉ Ó ÎÕÌÅÍ. é ×ÙÒÁÖÎÉÅ i > 0 ÞÁÓÔÎÙÊ ÓÌÕÞÁÊ ×ÙÒÁÖÅÎÉÑ, ÒÅÚÕÌØÔÁÔ ËÏÔÏÒÏÇÏ ÒÁ×ÅÎ 1 ÅÓÌÉ i ÂÏÌØÛÅ ÎÕÌÑ ÉÌÉ 0 ÉÎÁÞÅ.

6.8.5.3 The for statement The statement for ( clause-1 ; expression-2 ; expression-3 ) statement

behaves as follows: The expression expression-2 is the controlling expression that is evaluated before each execution of the loop body. The expression expression-3 is evaluated as a void expression after each execution of the loop body. If clause-1 is an expression, it is evaluated as a void expression before the first evaluation of the controlling expression. Both clause-1 and expression-3 can be omitted. An omitted expression-2 is replaced by a nonzero constant.

WBR, AVB

Hello Dmitry.

Wed Oct 12 2005 13:20, Dmitry Orlov wrote to me:

DO>>> ëÁËÁÑ ÒÁÚÎÉÃÁ?

DT>> íÎÅÍÏÎÉÞÎÏÓÔØ, ÅÓÔÅÓÔ×ÅÎÎÏÓÔØ. óÒÁ×ÎÉ: "ÐÏËÁ ÓޣÔÞÉË ÂÉÔ DT>> ÂÏÌØÛÅ ÎÕÌÑ" É "ÐÏËÁ ÓޣÔÞÉË ÂÉÔ". é ÏÔÓÕÔÓÔ×ÉÅ ÎÅÑ×ÎÙÈ DT>> ÐÒÅÏÂÒÁÚÏ×ÁÎÉÊ ÔÉÐÏ×.

DO> "ðÏËÁ ÓÞÅÔÞÉË ÂÉÔ" × ó ÚÎÁÞÉÔ "ÐÏËÁ ÓÞÅÔÞÉË ÎÅ ÎÏÌØ", ÔÁË ÞÔÏ ÂÏÌØÛÏÊ DO> ÒÁÚÎÉÃÙ Ñ ÎÅ ×ÉÖÕ.

HÅ ÚÒÑ ×ÅÄØ × C++ ××ÅÌÉ ÔÉÐ bool É ÐÏÎÑÔÉÅ ÈÏÒÏÛÅÇÏ ÓÔÉÌÑ. ;)

Dimmy.

Hello Alexey.

Wed Oct 12 2005 17:30, Alexey V Bugrov wrote to me:

AVB>>> é ÞÔÏ Ë ÞÅÍÕ ÐÒÉ×ÏÄÉÔÓÑ?

DT>> int Ë bool, ÒÁÚÕÍÅÅÔÓÑ. :)

AVB> HÅÔ ÔÁËÏÇÏ ÔÉÐÁ × ó.

úÁÔÏ ÅÓÔØ × C++. HÏ ×ÏÏÂÝÅ-ÔÏ ÒÅÞØ Ï ÓÔÉÌÅ ÛÌÁ.

AVB> 6.8.5.3 The for statement AVB> The statement AVB> for ( clause-1 ; expression-2 ; expression-3 ) statement AVB> behaves as follows [skip]

for ( init ; condition ; iterate-expr ) statement ... The *for* loop starts by executing the *init* part, if present. It then evaluates the *condition* (just like a *while* loop). If the *condition* is _true_, the loop executes *statement*. It then evaluates *iterate-expr* and reevaluates *condition*. This process continues while *condition* is _true_. If

*condition* is _false_, the loop finishes and execution continues with the subsequent statement. Thus, the *init* part is evaluated exactly once. The *condition* is evaluated at least once. The *statement* might be executed zero times. [O'Reilly]

Dimmy.

Hello, Dimmy Timchenko! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Wed, 12 Oct 2005 17:57:14

+0400:

DO>>>> Какая разница?

DT>>> Мнемоничность, естественность. Сравни: "пока счётчик бит DT>>> больше нуля" и "пока счётчик бит". И отсутствие неявных DT>>> преобразований типов.

DO>> "Пока счетчик бит" в С значит "пока счетчик не ноль", так что DO>> большой разницы я не вижу.

DT> Hе зря ведь в C++ ввели тип bool и понятие хорошего стиля. ;)

Может и не зря, но вовсе не для этого.

dima

formatting link

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required