avr-libc  2.1.0
Standard C library for AVR-GCC

AVR Libc Home Page

AVRs

AVR Libc Development Pages

Main Page

User Manual

Library Reference

FAQ

Example Projects

All Data Structures Files Functions Variables Typedefs Enumerations Macros Modules Pages
Macros
<util/parity.h>: Parity bit generation

Macros

#define parity_even_bit(val)
 

Detailed Description

#include <util/parity.h>

This header file contains optimized assembler code to calculate the parity bit for a byte.

Macro Definition Documentation

◆ parity_even_bit

#define parity_even_bit (   val)
Value:
(__extension__({ \
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.