Я то не читал - видать интересное пропустил :-))) ладно это, а как
вам такой код? {
int32_t i;
uint16_t data;
data = 0;
data = (PHY_MII_ST << 14); /* ST code */
if( option == PHY_MII_READ )
{
data |= (PHY_MII_READ << 12); /* OP code(RD) */
}
else
{
data |= (PHY_MII_WRITE << 12); /* OP code(WT) */
}
data |= (PHY_MII_ADDR << 7); /* PHY Address */
data |= (reg_addr << 2); /* Reg Address */
i = 14;
while( i > 0 )
{
if( (data & 0x8000) == 0 )
{
_Phy_MiiWrite0();
}
else
{
_Phy_MiiWrite1();
}
data <<= 1;
i--;
}
}