ich habe mir einen Nano mit Huckepack EthernetShield (enc28j60) zugelegt. Der ist so schön klein, und kann schön an engen Ecken verbaut werden.
Allerdings ist bei dem Paket der CS-Pin auf Pin 10. Die Ethercard-Lib, die ich verwende hat den Pin aber fest auf PIN 8.
Hier der entsprechende Auszug aus der enc28j60.h
/** @brief Initialise network interface
* @param size Size of data buffer
* @param macaddr Pointer to 6 byte hardware (MAC) address
* @param csPin Arduino pin used for chip select (enable network interface SPI bus). Default = 8
* @return <i>uint8_t</i> ENC28J60 firmware version or zero on failure.
*/
static uint8_t initialize (const uint16_t size, const uint8_t* macaddr,
uint8_t csPin = 8);
Sicher kann ich die Datei ändern. Befürchte aber, wenn ich da mal ein neues Release verwende, dann ist meine Änderung vergessen und ich suche mir nen Wolf.
Kann ich den Parameter irgendwie aus dem Arduino-Programm ändern? Dann könnte ich immer mit der Original-Lib arbeiten.
hk007:
Kann ich den Parameter irgendwie aus dem Arduino-Programm ändern?
Probiere mal aus, ob Du die Funktion wahlweise mit zwei oder mit drei Parametern aufrufen kannst!
Soweit ich das sehe, handelt es sich dabei um eine Funktion mit optionalem Parameter. Gibst Du den dritten Parameter an, wird der übergebene Parameter genommen. Gibst Du den dritten Parameter nicht an, wird stattdessen der Default-Parameter aus der Funktionsdeklaration genommen.
Jetzt hab ich in der enc28j60.h noch einen zweiten Eintrag gefunden:
/** @brief Reset and fully initialise ENC28J60
* @param csPin Arduino pin used for chip select (enable SPI bus)
* @return <i>uint8_t</i> 0 on failure
*/
static uint8_t doBIST(uint8_t csPin = 8);
Wird das auch in der ether.begin-Routine richtig gestellt? Der Aufruf hängt ja noch so unmotiviert hinter der Klammer dran. So viel versteh ich von C nicht
Vergesst das durchgestrichene. k.A. wie das doBIST da dran gekommen ist… Bin wohl auf “paste” eingeschlafen