jak udelat v C
Petr Stehlik
petr.stehlik@atlas.cz
Středa Červen 25 18:48:57 CEST 2008
Todle jsem našel v dokumentaci k avr-libc, nezkoušel to někdo?
Vhodnym nastavenim 7 bitu by to mohlo fungovat.
Petr
Detailed Description
#include <avr/parity.h>
This header file contains optimized assembler code to calculate the parity
bit for a byte.
Defines
#define parity_even_bit(val)
Define Documentation
#define parity_even_bit ( val )
Value:
({ \
unsigned char __t; \
__asm__ ( \
"mov __tmp_reg__,%0" "\n\t" \
"swap %0" "\n\t" \
"eor %0,__tmp_reg__" "\n\t" \
"mov __tmp_reg__,%0" "\n\t" \
"lsr %0" "\n\t" \
"lsr %0" "\n\t" \
"eor %0,__tmp_reg__" \
: "=r" (__t) \
: "0" ((unsigned char)(val)) \
: "r0" \
); \
(((__t + 1) >> 1) & 1); \
})
Returns:
1 if val has an odd number of bits set.
----- Original Message -----
From: "Jan Kral" <kral@fortech.cz>
To: "HW-news" <hw-list@list.hw.cz>
Sent: Wednesday, June 25, 2008 4:25 PM
Subject: RE: jak udelat v C
No a kdyby se vedelo, jak se libovolne meni bity v te promenne (mysleno
jakym algoritmem), tak by mozna slo zaridit uz pri tom meneni spravnou
funkci to, aby nekde byl aktualni ten paritni bit bez nutnosti jeho
asynchronniho vypoctu nekde mimo. Bylo by na posouzeni, jak casto se meni
bity 0-6, jak casto by se mel paritni bit vypocitavat a kolik je mista na
tabulku a pripadne ukazatele do tabulky atd.
JK
> Dobry den,
> poradte prosim jak nejrychleji (myslim casove) provest toto:
> mam promennou a v ni se bity 0-6 libovolne meni, bit 7 musim doplnovat
> jako
> lichou paritu. Jak zjistit paritu v promene? Neexistuje na to nejaky figl?
> Provadim to v procesuru ATmega 48, a chtel bych to provest v C.
> Predem dekuji
> Drobisz H.
_______________________________________________
HW-list mailing list - sponsored by www.HW.cz
Hw-list@list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list
Další informace o konferenci Hw-list