@@ -418,13 +418,11 @@ void MCP2515Class::dumpRegisters(Stream& out)
418
418
419
419
void MCP2515Class::reset ()
420
420
{
421
- digitalWrite (_csPin, LOW);
422
-
423
421
SPI.beginTransaction (_spiSettings);
422
+ digitalWrite (_csPin, LOW);
424
423
SPI.transfer (0xc0 );
425
- SPI.endTransaction ();
426
-
427
424
digitalWrite (_csPin, HIGH);
425
+ SPI.endTransaction ();
428
426
429
427
delayMicroseconds (10 );
430
428
}
@@ -444,44 +442,38 @@ uint8_t MCP2515Class::readRegister(uint8_t address)
444
442
{
445
443
uint8_t value;
446
444
447
- digitalWrite (_csPin, LOW);
448
-
449
445
SPI.beginTransaction (_spiSettings);
446
+ digitalWrite (_csPin, LOW);
450
447
SPI.transfer (0x03 );
451
448
SPI.transfer (address);
452
449
value = SPI.transfer (0x00 );
453
- SPI.endTransaction ();
454
-
455
450
digitalWrite (_csPin, HIGH);
451
+ SPI.endTransaction ();
456
452
457
453
return value;
458
454
}
459
455
460
456
void MCP2515Class::modifyRegister (uint8_t address, uint8_t mask, uint8_t value)
461
457
{
462
- digitalWrite (_csPin, LOW);
463
-
464
458
SPI.beginTransaction (_spiSettings);
459
+ digitalWrite (_csPin, LOW);
465
460
SPI.transfer (0x05 );
466
461
SPI.transfer (address);
467
462
SPI.transfer (mask);
468
463
SPI.transfer (value);
469
- SPI.endTransaction ();
470
-
471
464
digitalWrite (_csPin, HIGH);
465
+ SPI.endTransaction ();
472
466
}
473
467
474
468
void MCP2515Class::writeRegister (uint8_t address, uint8_t value)
475
469
{
476
- digitalWrite (_csPin, LOW);
477
-
478
470
SPI.beginTransaction (_spiSettings);
471
+ digitalWrite (_csPin, LOW);
479
472
SPI.transfer (0x02 );
480
473
SPI.transfer (address);
481
474
SPI.transfer (value);
482
- SPI.endTransaction ();
483
-
484
475
digitalWrite (_csPin, HIGH);
476
+ SPI.endTransaction ();
485
477
}
486
478
487
479
void MCP2515Class::onInterrupt ()
0 commit comments