small optimization
This commit is contained in:
parent
6b4f76c5f4
commit
f53e2adae8
@ -58,6 +58,8 @@ unsigned long lastReset = (unsigned long)-1;
|
|||||||
unsigned long bitStart = (unsigned long)-1;
|
unsigned long bitStart = (unsigned long)-1;
|
||||||
byte receivingByte = 0;
|
byte receivingByte = 0;
|
||||||
byte receivingBitPos = 0;
|
byte receivingBitPos = 0;
|
||||||
|
bool searchRomNextBit = false;
|
||||||
|
bool searchRomNextBitToSend = false;
|
||||||
|
|
||||||
void setup()
|
void setup()
|
||||||
{
|
{
|
||||||
@ -211,6 +213,9 @@ void onewireInterruptImpl(void)
|
|||||||
searchROMSendingInverse = false;
|
searchROMSendingInverse = false;
|
||||||
searchROMCurrentByte = 0;
|
searchROMCurrentByte = 0;
|
||||||
searchROMCurrentBit = 0;
|
searchROMCurrentBit = 0;
|
||||||
|
byte currentByte = owROM[searchROMCurrentByte];
|
||||||
|
searchRomNextBit = bitRead(currentByte, searchROMCurrentBit);
|
||||||
|
searchRomNextBitToSend = searchROMSendingInverse ? !searchRomNextBit : searchRomNextBit;
|
||||||
attachInterrupt(InterruptNumber, onewireInterruptSearchROM, FALLING);
|
attachInterrupt(InterruptNumber, onewireInterruptSearchROM, FALLING);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -232,10 +237,7 @@ void onewireInterruptSearchROM()
|
|||||||
{
|
{
|
||||||
bool bit = readBit();
|
bool bit = readBit();
|
||||||
|
|
||||||
byte currentByte = owROM[searchROMCurrentByte];
|
if (bit != searchRomNextBit)
|
||||||
bool currentBit = bitRead(currentByte, searchROMCurrentBit);
|
|
||||||
|
|
||||||
if (bit != currentBit)
|
|
||||||
{
|
{
|
||||||
debug.SC_APPEND_STR("Master didn't send our bit, leaving ROM search");
|
debug.SC_APPEND_STR("Master didn't send our bit, leaving ROM search");
|
||||||
status = OS_WaitReset;
|
status = OS_WaitReset;
|
||||||
@ -263,12 +265,7 @@ void onewireInterruptSearchROM()
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
byte currentByte = owROM[searchROMCurrentByte];
|
sendBit(searchRomNextBitToSend);
|
||||||
bool currentBit = bitRead(currentByte, searchROMCurrentBit);
|
|
||||||
//bool currentBit = 0;
|
|
||||||
|
|
||||||
bool bitToSend = searchROMSendingInverse ? !currentBit : currentBit;
|
|
||||||
sendBit(bitToSend);
|
|
||||||
/*if (bitToSend)
|
/*if (bitToSend)
|
||||||
debug.SC_APPEND_STR("sent ROM search bit : 1");
|
debug.SC_APPEND_STR("sent ROM search bit : 1");
|
||||||
else
|
else
|
||||||
@ -284,6 +281,10 @@ void onewireInterruptSearchROM()
|
|||||||
searchROMSendingInverse = true;
|
searchROMSendingInverse = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
byte currentByte = owROM[searchROMCurrentByte];
|
||||||
|
searchRomNextBit = bitRead(currentByte, searchROMCurrentBit);
|
||||||
|
searchRomNextBitToSend = searchROMSendingInverse ? !searchRomNextBit : searchRomNextBit;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool readBit()
|
bool readBit()
|
||||||
|
Loading…
Reference in New Issue
Block a user