我目前正在尝试调试一件代码,但我无法弄清楚以下代码的确做什么。谁能帮助我解释或给我有关以下代码功能的想法?
uint8_t get_pca9955a_slave_loaded(uint8_t _slave)
{
uint8_t x = (uint8_t)(_slave / 16);
uint8_t y = (uint8_t)(_slave % 16);
uint16_t mask = 1U << y;
if (check_pca9955a_slave_valid(_slave)) {
return (uint8_t)((pca9955a_slaves_loaded[x] & mask) ? 1U : 0U);
} else {
return 0U;
}
}
亲切的问候,张
它将一个字节拆开到其高鼻涕x和低鼻涕y中。服用mod 16与取四个最低位相同,除以16与取下剩余的位相同。
然后,它使用y来计算bitmask和x作为您未共享的全局变量表的偏移一个未签名的字节。