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