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