Skip to content

Commit b95b3fc

Browse files
committed
Add another "dump registers" method with shorter and more readable output
1 parent 706ecd7 commit b95b3fc

File tree

2 files changed

+68
-0
lines changed

2 files changed

+68
-0
lines changed

src/MCP2515.cpp

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -491,6 +491,73 @@ void MCP2515Class::setClockFrequency(long clockFrequency)
491491
_clockFrequency = clockFrequency;
492492
}
493493

494+
void MCP2515Class::dumpImportantRegisters(Stream& out) {
495+
out.print("TEC: ");
496+
out.println(readRegister(0x1C), HEX);
497+
out.print("REC: ");
498+
out.println(readRegister(0x1D), HEX);
499+
out.print("CANINTE: ");
500+
out.println(readRegister(0x2B), HEX);
501+
502+
out.print("CANINTF: ");
503+
uint8_t regCANINTF = readRegister(0x2C);
504+
out.print(regCANINTF, HEX);
505+
if (regCANINTF & 0x80) {
506+
out.print(" MERRF");
507+
}
508+
if (regCANINTF & 0x40) {
509+
out.print(" WAKIF");
510+
}
511+
if (regCANINTF & 0x20) {
512+
out.print(" ERRIF");
513+
}
514+
if (regCANINTF & 0x10) {
515+
out.print(" TX2IF");
516+
}
517+
if (regCANINTF & 0x08) {
518+
out.print(" TX1IF");
519+
}
520+
if (regCANINTF & 0x04) {
521+
out.print(" TX0IF");
522+
}
523+
if (regCANINTF & 0x02) {
524+
out.print(" RX1IF");
525+
}
526+
if (regCANINTF & 0x01) {
527+
out.print(" RX0IF");
528+
}
529+
out.println();
530+
531+
out.print("EFLG: ");
532+
uint8_t regEFLG = readRegister(0x2D);
533+
out.print(regEFLG, HEX);
534+
if (regEFLG & 0x80) {
535+
out.print(" RX1OVR");
536+
}
537+
if (regEFLG & 0x40) {
538+
out.print(" RX0OVR");
539+
}
540+
if (regEFLG & 0x20) {
541+
out.print(" TXBO");
542+
}
543+
if (regEFLG & 0x10) {
544+
out.print(" TXEP");
545+
}
546+
if (regEFLG & 0x08) {
547+
out.print(" RXEP");
548+
}
549+
if (regEFLG & 0x04) {
550+
out.print(" TXWAR");
551+
}
552+
if (regEFLG & 0x02) {
553+
out.print(" RXWAR");
554+
}
555+
if (regEFLG & 0x01) {
556+
out.print(" EWARN");
557+
}
558+
out.println();
559+
}
560+
494561
void MCP2515Class::dumpRegisters(Stream& out)
495562
{
496563
for (int i = 0; i < 128; i++) {

src/MCP2515.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ class MCP2515Class : public CANControllerClass {
6363
void setSPIFrequency(uint32_t frequency);
6464
void setClockFrequency(long clockFrequency);
6565

66+
void dumpImportantRegisters(Stream& out);
6667
void dumpRegisters(Stream& out);
6768

6869
private:

0 commit comments

Comments
 (0)