15#define MAX_VALUE 32767
16#define MIN_VALUE -32768
17#define MAX_VALUE_USIGNED 0xFFFF
33 *Data |= ( 0x01 << BitPn );
49 *Data &= ~( 0x01 << BitPn );
68 Result = ( Data >> BitPn ) & 1u;
87 uint16 Mask = ( ( 1u << BitLn ) - 1 ) << BitStartPn;
93 else if( Status == 1 )
117 Result = ( Data >> BitStartPn ) & ( ( 1u << BitLn ) - 1u );
170 Result = ( Data & Mask ) == Mask;
191 Result = ( Data & Mask ) > 0;
209 boolean parity =
FALSE;
215 Data &= ( Data - 1 );
298 *Data = ( *Data >> ShiftCnt ) | ( *Data << ( 16 - ShiftCnt ) );
314 *Data = ( *Data << ShiftCnt ) | ( *Data >> ( 16 - ShiftCnt ) );
334 Buffer = ( ( SourceData & ( 0x01 << SourcePosition ) ) != 0 ) ?
TRUE :
FALSE;
335 if( Buffer ==
FALSE )
337 *DestinationData = ( *DestinationData & ~( 0x01 << DestinationPosition ) );
341 *DestinationData = *DestinationData | ( 0x01 << DestinationPosition );
360 uint16 Mask = ( ( 1u << BitLn ) - 1u ) << BitStartPn;
361 *Data = ( *Data & ~Mask ) | ( ( Pattern << BitStartPn ) & Mask );
378 *Data = ( *Data & ~Mask ) | ( Pattern & Mask );
395 if( Status ==
FALSE )
397 *Data &= ~( 0x01 << BitPn );
401 *Data |= 0x01 << BitPn;
421 for(
uint8 i = 16; i > 0; i-- )
423 if( ( Data & ( 0x01 << ( i - 1 ) ) ) != 0 )
451 for(
uint8 i = 16; i > 0; i-- )
453 if( ( Data & ( 0x01 << ( i - 1 ) ) ) != 0 )
485 while( ( Data & Mask ) == 0 )
493 while( ( Data & Mask ) == Mask )
524 boolean DataIsNegative = ( Data < 0 );
529 if( ( DataIsNegative ==
FALSE ) && ( Data < 0 ) )
533 else if( ( DataIsNegative ==
TRUE ) && ( Data >= 0 ) )
548 for(
uint8 i = 0; i < ShiftCnt; i++ )
579 uint8 MaxShiftLeft = 0;
581 while( ( Data & Mask ) == 0 )
588 if( ShiftCnt > MaxShiftLeft )
static void Bfx_ShiftBitRt_u16u8(uint16 *Data, uint8 ShiftCnt)
Shifts a unsigned integer to the right acourding to ShiftCnt
Definition Bfx_16bits.h:263
static void Bfx_ToggleBitMask_u16u16(uint16 *Data, uint16 Mask)
Using a mask to toggle bits
Definition Bfx_16bits.h:246
static void Bfx_ToggleBits_u16(uint16 *Data)
Changes the value of every bit of an unsigned integer
Definition Bfx_16bits.h:230
static void Bfx_SetBits_u16u8u8u8(uint16 *Data, uint8 BitStartPn, uint8 BitLn, uint8 Status)
Modifies consecutive bits acording to status
Definition Bfx_16bits.h:85
static boolean Bfx_TstBitLnMask_u16u16_u8(uint16 Data, uint16 Mask)
Compare any bit of a mask with a seccion of an unsigned integer
Definition Bfx_16bits.h:187
static void Bfx_PutBitsMask_u16u16u16(uint16 *Data, uint16 Pattern, uint16 Mask)
Takes a pattern and a mask and puts it in an unsigned integer
Definition Bfx_16bits.h:376
static void Bfx_SetBitMask_u16u16(uint16 *Data, uint16 Mask)
Using a mask to set bits
Definition Bfx_16bits.h:132
static void Bfx_CopyBit_u16u8u16u8(uint16 *DestinationData, uint8 DestinationPosition, uint16 SourceData, uint8 SourcePosition)
Copies a bit from an integer to another
Definition Bfx_16bits.h:330
static uint8 Bfx_CountLeadingZeros_u16(uint16 Data)
Counts consecutive zeros
Definition Bfx_16bits.h:447
static boolean Bfx_GetBit_u16u8_u8(uint16 Data, uint8 BitPn)
Obtain one bit especified
Definition Bfx_16bits.h:64
static boolean Bfx_TstBitMask_u16u16_u8(uint16 Data, uint16 Mask)
Compare a mask with a seccion of an unsigned integer
Definition Bfx_16bits.h:166
static void Bfx_SetBit_u16u8(uint16 *Data, uint8 BitPn)
Set a single bit in Data pointer
Definition Bfx_16bits.h:31
static uint8 Bfx_GetBits_u16u8u8_u16(uint16 Data, uint8 BitStartPn, uint8 BitLn)
Obtains consecutive bits from an unsigned integer
Definition Bfx_16bits.h:113
static uint8 Bfx_CountLeadingSigns_s16(sint16 Data)
Counts leading signs
Definition Bfx_16bits.h:478
static void Bfx_ShiftBitLt_u16u8(uint16 *Data, uint8 ShiftCnt)
Shifts a unsigned integer to the left acourding to ShiftCnt
Definition Bfx_16bits.h:280
static sint16 Bfx_ShiftBitSat_s16s8_s16(sint8 ShiftCnt, sint16 Data)
Arithmetic shift with saturation
Definition Bfx_16bits.h:521
static void Bfx_PutBit_u16u8u8(uint16 *Data, uint8 BitPn, boolean Status)
Sets the bit of an unsigned integer according to Status
Definition Bfx_16bits.h:393
static void Bfx_ClrBit_u16u8(uint16 *Data, uint8 BitPn)
Clears a single bit in Data pointer
Definition Bfx_16bits.h:47
static void Bfx_RotBitRt_u16u8(uint16 *Data, uint8 ShiftCnt)
Rotates a unsigned integer to the right acourding to ShiftCnt
Definition Bfx_16bits.h:296
static boolean Bfx_TstParityEven_u16_u8(uint16 Data)
Determines if an unsigned integer has even parity
Definition Bfx_16bits.h:207
static uint16 Bfx_ShiftBitSat_u16s8_u16(sint8 ShiftCnt, uint16 Data)
Arithmetic shift with saturation
Definition Bfx_16bits.h:576
static void Bfx_RotBitLt_u16u8(uint16 *Data, uint8 ShiftCnt)
Rotates a unsigned integer to the left acourding to ShiftCnt
Definition Bfx_16bits.h:312
static void Bfx_PutBits_u16u8u8u16(uint16 *Data, uint8 BitStartPn, uint8 BitLn, uint16 Pattern)
Takes a pattern and puts it in an unsigned integer
Definition Bfx_16bits.h:358
static void Bfx_ClrBitMask_u16u16(uint16 *Data, uint16 Mask)
Using a mask to clear bits
Definition Bfx_16bits.h:148
static uint8 Bfx_CountLeadingOnes_u16(uint16 Data)
Counts consecutive ones
Definition Bfx_16bits.h:417
Specification of Standard Types
#define MAX_VALUE
Definition Bfx_16bits.h:15
#define MAX_VALUE_USIGNED
Definition Bfx_16bits.h:17
#define MIN_VALUE
Definition Bfx_16bits.h:16