mirror of
https://github.com/logicog/RTLPlayground.git
synced 2026-08-30 14:52:51 +08:00
Add reg_bit_test function
This commit is contained in:
@@ -122,6 +122,7 @@ void print_reg(uint16_t reg);
|
|||||||
uint8_t sfp_read_reg(uint8_t slot, uint8_t reg);
|
uint8_t sfp_read_reg(uint8_t slot, uint8_t reg);
|
||||||
void reg_bit_set(uint16_t reg_addr, char bit);
|
void reg_bit_set(uint16_t reg_addr, char bit);
|
||||||
void reg_bit_clear(uint16_t reg_addr, char bit);
|
void reg_bit_clear(uint16_t reg_addr, char bit);
|
||||||
|
uint8_t reg_bit_test(uint16_t reg_addr, char bit);
|
||||||
void sfr_mask_data(uint8_t n, uint8_t mask, uint8_t set);
|
void sfr_mask_data(uint8_t n, uint8_t mask, uint8_t set);
|
||||||
void sfr_set_zero(void);
|
void sfr_set_zero(void);
|
||||||
void reset_chip(void);
|
void reset_chip(void);
|
||||||
|
|||||||
@@ -457,6 +457,23 @@ void reg_bit_clear(uint16_t reg_addr, char bit)
|
|||||||
reg_write_m(reg_addr);
|
reg_write_m(reg_addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This sets a bit in the 32bit wide switch register reg_addr
|
||||||
|
*/
|
||||||
|
uint8_t reg_bit_test(uint16_t reg_addr, char bit)
|
||||||
|
{
|
||||||
|
uint8_t bit_mask = 1 << (bit & 0x7);
|
||||||
|
|
||||||
|
bit >>= 3;
|
||||||
|
reg_read_m(reg_addr);
|
||||||
|
bit_mask = bit_mask;
|
||||||
|
if (sfr_data[3-bit] & bit_mask)
|
||||||
|
return 1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This masks the sfr data fields, first &-ing with ~mask, then setting the bits in set
|
* This masks the sfr data fields, first &-ing with ~mask, then setting the bits in set
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user