1
0
mirror of https://github.com/DCC-EX/CommandStation-EX.git synced 2024-11-27 01:56:14 +01:00

handle decoders that do not ack better

This commit is contained in:
Harald Barth 2022-09-14 12:27:04 +02:00
parent 02ed7828c1
commit 27a458a850

16
DCC.cpp
View File

@ -498,8 +498,8 @@ const ackOp FLASH SHORT_LOCO_ID_PROG[] = {
V0,WACK,NAKFAIL, V0,WACK,NAKFAIL,
SETCV, (ackOp)1, SETCV, (ackOp)1,
SETBYTEL, // low byte of word SETBYTEL, // low byte of word
WB,WACK, // some decoders don't ACK writes WB,WACK,ITC1, // If ACK, we are done - callback(1) means Ok
VB,WACK,ITCB, VB,WACK,ITC1, // Some decoders do not ack and need verify
CALLFAIL CALLFAIL
}; };
@ -517,13 +517,17 @@ const ackOp FLASH LONG_LOCO_ID_PROG[] = {
// Store high byte of address in cv 17 // Store high byte of address in cv 17
SETCV, (ackOp)17, SETCV, (ackOp)17,
SETBYTEH, // high byte of word SETBYTEH, // high byte of word
WB,WACK, WB,WACK, // do write
VB,WACK,NAKFAIL, ITSKIP, // if ACK, jump to SKIPTARGET
VB,WACK, // try verify instead
ITSKIP, // if ACK, jump to SKIPTARGET
CALLFAIL, // if still here, fail
SKIPTARGET,
// store // store
SETCV, (ackOp)18, SETCV, (ackOp)18,
SETBYTEL, // low byte of word SETBYTEL, // low byte of word
WB,WACK, WB,WACK,ITC1, // If ACK, we are done - callback(1) means Ok
VB,WACK,ITC1, // callback(1) means Ok VB,WACK,ITC1, // Some decoders do not ack and need verify
CALLFAIL CALLFAIL
}; };