C kerdes

Fuzesi Arnold arnold.fuzesi.lista at gmail.com
Thu Mar 22 21:44:59 CET 2007


A sajat konyvtaram egyik fuggvenye, mashol is hasznalom , ott integerkent az
eredmenyt.
Ugy ereztem a char checksum nagyon keves 4k környéki adatnál... de jelen
esetben egyeb okbol csak uchar -nyit hasznaltam. (keves is volt az adat, meg 
lehetoseg sem volt 16 bites csumot letarolni...)

A.
----- Original Message ----- 
From: "Palasik Sandor" <palasik at mail.datanet.hu>
To: <elektro at tesla.hu>
Sent: Thursday, March 22, 2007 9:18 PM
Subject: Re: C kerdes


Azért azt is meg lehetne csinálni, hogy a

> uint ee_checksum(uchar __eeprom* data, uint length)
> {
>    uint checksum = 0;
> do{
>  checksum+=(*data++);
> }
> while(--length);
>    return checksum;
> }

kód helyett a következőt használod:

uchar ee_checksum(uchar __eeprom* data, uint length)
{
   uchar checksum = 0;
   do{
      checksum+=(*data++);
   } while(--length);
   return checksum;
}

Nem bajlódsz utána a cast-tal és talán még a kód is rövidebb lesz, AVR-en
biztosan. Minek küzdjön a processzor int összeadással, amikor úgyis csak az
alsó 8 bitet használod fel utána?

Palasik Sándor

-----------------------------------------
          elektro[-flame|-etc]



More information about the Elektro mailing list