Leggere valore del registro

Salve, sto cercando di leggere un valore di un contatore presente all'interno del componente MCP2515. La libreria di riferimento è GitHub - autowp/arduino-mcp2515: Arduino MCP2515 CAN interface library . Nella libreria del file .cpp è presente una funzione che mi permette di leggere il contenuto di un registro:

uint8_t MCP2515::readRegister(const REGISTER reg)
{
    startSPI();
    SPI.transfer(INSTRUCTION_READ);
    SPI.transfer(reg);
    uint8_t ret = SPI.transfer(0x00);
    endSPI();

    return ret;
}

Nel file .h la funzione è di tipo private:

uint8_t readRegister(const REGISTER reg);

Sto cercando di utilizzare tale funzione all'interno del mio sketch in questo modo:
dichiaro l'indirizzo dov'è presente il mio registro:
[codeuint8_t MCP_TEC;][/code] mentre qui la uso:
mcp2515.readRegister(MCP_TEC);. Mi restituisce il seguente errore :'uint8_t MCP2515::readRegister(MCP2515::REGISTER)' is private within this context
So che un metodo di tipo privato può essere usato solo all'interno della classe dove viene dichiarato e forse l'errore sarà dovuto proprio a questo. Giusto ? esiste qualche altro modo per poter usare la funzione senza dover modificare la libreria ?

E, senza toccare nulla, farti una tua funzioncina che fa esattamente le stesse banali chiamate alla libreria SPI ? :smiley:

Guglielmo

gpb01:
farti una tua funzioncina che fa esattamente le stesse banali chiamate alla libreria SPI ? :smiley:

potrei fare un copia e incolla nello sketch della stessa funzione utilizzata nella libreria ?

Probabilmente dovrai scrivere prima le chiamate SPI che vengono fatte sia nella startSPI(), poi quelle della readRegisters() ed infine quelle della endSPI(), così da simulare in tutto e per tutto la readRegisters() :wink:

Quelle che devi usare sono tutte chiamate di base alla libreria SPI che è di base in Arduino ...

Guglielmo