Doel:€250.00
Donaties:€50.00

Per saldo:€-200.00

Steun ons nu!

Laatst bijgewerkt
op 03-01-2024

Vacature: secretaris bestuur
Algemeen

De stichting

Recente berichten

Geluid NS Mat'46 vs NS Mat'54 door Thom
Vandaag om 02:40:57
On traXS 15 t/m 17 maart Spoorwegmuseum Utrecht door MrBoembas
Vandaag om 02:36:33
De bouw van mijn modelbaan in Thailand door Thai-Bundesbahn
Vandaag om 02:07:57
Mallnitzer Tauernbahnstrecke ÖBB N Spoor door Schachbrett
Vandaag om 00:54:59
Bahnstrecke 5867 door Schachbrett
Vandaag om 00:39:27
Mijn Ned. N. Spoorbaan ''Echthoven'' door Schachbrett
Vandaag om 00:37:53
Bouw Bührtal III door Schachbrett
Vandaag om 00:36:33
Schneidersein door MartinRT
Vandaag om 00:00:05
NS/32 door RK
18 maart 2024, 23:49:38
Modelbaan Beltheim. door Ronald69
18 maart 2024, 23:41:34
01TREFF 2024, 26&27 OKTOBER door bernhard67
18 maart 2024, 23:27:22
Mijn eerste H0-modeltreinbaan in aanbouw door Modelbaan BeltHeim
18 maart 2024, 23:18:36
De Hondsrugbaan door Modelbaan BeltHeim
18 maart 2024, 23:17:58
Vraag over 20 voets container met vlakke zijwanden door MOVisser
18 maart 2024, 23:09:27
Ijzeren Rijn: militair transport door ijzeren rijn
18 maart 2024, 23:03:28
Perronhoogte TP3 door Klaas Zondervan
18 maart 2024, 22:35:55
Kranenberg, een exercitie in code 70 door wob
18 maart 2024, 22:14:45
EifelBurgenBahn door Reinout van Rees
18 maart 2024, 22:07:31
Loconet over TCP/IP door bask185
18 maart 2024, 22:00:49
bezetmelder aantal lengte en treinstellen door Bobos
18 maart 2024, 21:36:41
Les Billards du Vivarais door Hans1963
18 maart 2024, 21:36:19
plaatsen bezetmelders lengte en treinstellen door Bobos
18 maart 2024, 21:33:54
Am Ende der Strecke, modulebaan op 1 M2 door Frank 123
18 maart 2024, 21:34:50
Resetten decoder via Twin Center Fleischmann door Pieter Bregman
18 maart 2024, 21:33:18
Foto's gevraagd Den Haag CS, oude toestand door Pauldg
18 maart 2024, 21:30:41
Zee. Land. door Huup
18 maart 2024, 21:23:57
Digikeijs DR80010 door TBBW
18 maart 2024, 20:03:37
US diorama in H0 door basjuh1981
18 maart 2024, 20:02:44
Kemlerborden (Gevi / UN nummers) ketelwagens door Falkenberg
18 maart 2024, 19:36:20
Rheinburg, TP V/VI door gdh
18 maart 2024, 19:15:56
  

Auteur Topic: De CanBus komt naar Kranenberg, Arduino's en de CanBus  (gelezen 59780 keer)

meino

  • Offline Offline
  • Berichten: 2085
Re: De CanBus komt naar Kranenberg, Arduino's en de CanBus
« Reactie #45 Gepost op: 17 november 2019, 23:42:44 »
In Arduino IDE zit ergens een optie die de code netjes maakt als ik me goed herinner.
<Ctrl>t

Overigens gebruik ik meestal Netbeans, daarin kan ik in de Editor options de gewenste formatting(indentatie) per taal opgeven, die dan automatisch wordt uitgevoerd.

Groet Meino
A clean desk is a sign of an empty mind

Kranenberg
De CanBus komt naar Kranenberg

Te 2/2

  • Offline Offline
  • Berichten: 969
  • Metrop-Märklin
Re: De CanBus komt naar Kranenberg, Arduino's en de CanBus
« Reactie #46 Gepost op: 18 november 2019, 12:55:51 »
Netbeans
Kun je Netbeans of Eclipse ook gebruiken bij Arduino schrijfsels, dan?
(ben er zelf kennelijk al weer een tijdje uit)
Jan Willem

analoog hybride DC baan (2-rail+3-rail),
CH, peco, piko, roco, k-rail

bask185

  • Offline Offline
  • Berichten: 3976
Re: De CanBus komt naar Kranenberg, Arduino's en de CanBus
« Reactie #47 Gepost op: 18 november 2019, 13:34:46 »
if(x < 5) {
    if(y > 6) {
        doeIets();
        if(z == 7) {
            doeIetsAnders(); }
    helloWorld(); } }
Zal prima compilen maar doet wat anders dan de indentatie doet vermoeden.
In tegendeel. De identatie laat precies zien waar wat bijhoort.
Als je het normaal "standaard" noteert. Veranderen de indentaties namelijk niet.

if(x < 5) {
    if(y > 6) {
        doeIets();
        if(z == 7) {
            doeIetsAnders();
        }
        helloWorld();
    }
}
of nog "erger":
if(x < 5)
{
    if(y > 6)
   {
        doeIets();
        if(z == 7)
        {
            doeIetsAnders();
        }
        helloWorld();
    }
}
Ik heb dus ondervonden dat methode 1 (die van mij dus) niet onderdoet aan de "standaards". En methode #3 heeft dubbel zo veel regels als #1

Bovendien!
Citaat
Om te "forceren" (lees: makkelijk kunnen controleren) dat ik genoeg sluit-accolades plaats om niet per ongeluk de boel verkeerd te groeperen.
Ik gebruik hiervoor: de bracket highlighting tool die in bijna elke half knappe editor zit. We mogen niet vergeten dat we gezegend zijn met schitterende alles kunnende text editors zoals Vs code, of sublome of netbeans of ...
#indentatie flaming off  :P

Er zijn trouwens 3 dingen die ik met macro's doe om fouten en onduidelijkheden te voorkomen
  • Ik maak ze aan, waar ik ze nodig heb, zodat je deze automatisch leest, voordat je code leest waar ze gebruikt worden
  • Ik test de macro's afzonderlijk op bugs, voordat ik ze op 300 plaatsen gebruik
  • In mijn state machines zijn de 4 cruciale macro's (die de klok laten tikken) allemaal gegeneerd en alle gebruiken zijn ook gegenereerd. Aangezien de computer voor mij, goed geteste macro's 'tikt', kan ik of m'n collega er geen fouten in maken

In C zijn macro's ook handig voor functies met "verschillend aantal argumenten". Eigenlijk heeft C dat niet muv die var args ellende ed. En printf() enzo.
Met macro's maak ik dan 'lookalike' functies waarbij sommige argumenten voor je worden ingevuld. Een mooi voorbeeldje:
Op werk gebruikten we ooit de functie:
startAfter(&foo, 500, 200, 0);
Deze functie startte functie foo na 500 ms en bleef dat vervolgens om de 200ms doen. Als het laatste argument 1 is, dan wordt foo maar 1x uitgevoerd. Dat noemden we oneshot timers.
Voor het 'gemak' hadden we 2 simpele macro's:
#define trigger(func,interval) startAfter(func,interval,1)
#define start(func,interval) startAfter(func,interval,0)
ipv startAfter tikten we of start of trigger, afhankelijk of een functie herhaaldelijk of 1 malig uitgevoerd moest worden. En heel af en toe was het nodig dat we wel startAfter moesten gebruiken. Super elegant als je geen method overloading (gebruik ik de goede term) tot je beschikking heb, als zeg ik het zelf.
macro flaming ook off  ::)

Ik heb zelf ook assembly hel gedaan en ik weet dat een goede switch-case zich transleert naar een jumptabel. Ik zie echter niet het probleem met de restrictie van het gebruik van int en char... of wat ik gewoon als bytes zie. Dat werkt toch gewoon?  ::). met uControllers raak ik sws geen floats of doubles aan.

Wat ik zelf wel mis aan een switch-case is dat je niet cases kan uitvoeren adhv getallen gebieden. Je hebt geen case (var >= 0 && var < 10):

Je kan hier nog wel eens omheen werken met de handige Map(var, 0,10,0,100) functie. Die dan je getallengebiedjes omzet naar een bruikbare int voor een switch case. Maar soms ook niet en dan zit je toch vast aan een if-else ketting. :-[


Kun je Netbeans of Eclipse ook gebruiken bij Arduino schrijfsels, dan?
(ben er zelf kennelijk al weer een tijdje uit)
Je kan ook kladblok gebruiken. Als je in arduino naar settings ga (Ctrl + comma) dan kan je het boxje (externe editor) aanvinken en kan je elke editor naar keuzen gebruiken. De arduino IDE kan dan geen code meer aanpassen en de coder verandert meteen mee met je andere editor bij elke save. Dan gebruik je Arduino alleen maar om te compilen.

Je kan het ook meteen goed doen en arduino met Vs code en een arduino plugin compileren. Of je compileert via een terminal. Dan kan je met elke editor compileren waarmee je scripts kan aanroepen.
Train-Science.com
Train-Science github
It ain't rocket science ;-)

meino

  • Offline Offline
  • Berichten: 2085
Re: De CanBus komt naar Kranenberg, Arduino's en de CanBus
« Reactie #48 Gepost op: 18 november 2019, 15:17:53 »
Kun je Netbeans of Eclipse ook gebruiken bij Arduino schrijfsels, dan?
(ben er zelf kennelijk al weer een tijdje uit)
Ja dat kan. Ik heb zelf Netbeans opgetuigd om een Arduino project te kunnen maken, Dat werkt met makefiles. Maar ik gebruik het zelf niet meer om een schets mee te bouwen, dat gaat goed, maar het switchen van platform (UNO->Mega etc) kost vrij veel handelingen, en ook het automatisch hercompileren van de bibliotheken gaat niet. Verder vond ik ook het uploaden complex.
Aangezien mijn schetsen over het algemeen vrij simpel zijn, het meeste werk doe ik in een bibliotheek, blijf ik daarvoor de Arduino IDE gebruiken. Ik gebruik Netbeans wel voor het maken en onderhouden van de gebruikte bibliotheken, maar dat beperkt zich tot edit werk van de .cpp en .h bestanden, waarbij de Netbeans editor en navigator het werk aanmerkelijk makkelijker maakt.

Groet Meino
A clean desk is a sign of an empty mind

Kranenberg
De CanBus komt naar Kranenberg

Robert E

  • Offline Offline
  • Berichten: 909
    • Robert’s Modelspoor Pagina
Re: De CanBus komt naar Kranenberg, Arduino's en de CanBus
« Reactie #49 Gepost op: 18 november 2019, 21:08:31 »
Citaat
of Eclipse ook gebruiken bij Arduino schrijfsels,

Sloeber is kant en klare Eclipse omgeving voor Arduino inc. support voor andere arduino varianten als de EPS8266 / STM32's enz.

https://eclipse.baeyens.it/

Die Arduino IDE omgeving is toch net een typemachine maar dan net iets slimmer, maar niet veel :)

Citaat
Ik heb dus ondervonden dat methode 1 (die van mij dus) niet onderdoet aan de "standaards".

Voor mij persoonlijk visuele puinhoop, ik ben van de

Citaat
of nog "erger":
manier van werken...

Mvg

Robert
« Laatst bewerkt op: 18 november 2019, 21:10:25 door Robert E »
MDRRC-II (Lite) goedkope DIY centrale voor DCC en MM.
Heb je een vraag, stuur me dan een mail via mijn site ipv persoonlijk bericht...

meino

  • Offline Offline
  • Berichten: 2085
Re: De CanBus komt naar Kranenberg, Arduino's en de CanBus
« Reactie #50 Gepost op: 19 november 2019, 00:00:30 »
of nog "erger":

Ik ben ook van die school. Komt uit de tijd van vi op een VT100 of xterm window. Dan kon je makkelijk met een % checken of de blokken correct waren. Als de plaats van de brackets in de regel versprong dan had je een probleem.

Groet Meino
A clean desk is a sign of an empty mind

Kranenberg
De CanBus komt naar Kranenberg

bask185

  • Offline Offline
  • Berichten: 3976
Re: De CanBus komt naar Kranenberg, Arduino's en de CanBus
« Reactie #51 Gepost op: 19 november 2019, 08:06:34 »
Voor mij persoonlijk visuele puinhoop

Kijk Meino, ik heb er weer "zo'n eentje" gevonden  :o

Wat de boer (spreekwoordelijk bedoeld) niet kent dat noemt ie maar een puinhoop
Train-Science.com
Train-Science github
It ain't rocket science ;-)

meino

  • Offline Offline
  • Berichten: 2085
Re: De CanBus komt naar Kranenberg, Arduino's en de CanBus
« Reactie #52 Gepost op: 19 november 2019, 10:10:44 »
@bask185
Dat Robert een sterke mening hier over heeft, is zijn visie. Als je in een grote ontwikkelgroep werkt, waarbij het onderhoud door anderen dan de oorspronkelijke ontwikkelaar plaats vindt, dan kan een standaard stijl belangrijk zijn. Maar uiteindelijk gaat het er om dat de programmeur zich happy voelt met een bepaalde stijl. Dus geef ik geen waardeoordeel over een bepaalde stijl. Wel heb ik zelf een voorkeur stijl, die ik in Netbeans heb geconfigureerd.

Ik denk dat het tijd wordt om deze discussie te stoppen.

Groet Meino
A clean desk is a sign of an empty mind

Kranenberg
De CanBus komt naar Kranenberg

bask185

  • Offline Offline
  • Berichten: 3976
Re: De CanBus komt naar Kranenberg, Arduino's en de CanBus
« Reactie #53 Gepost op: 19 november 2019, 11:16:11 »
Ik denk dat het tijd wordt om deze discussie te stoppen.
Akkoord!

Heb je nog voortgang gemaakt met je baan?
Train-Science.com
Train-Science github
It ain't rocket science ;-)

Patrick Smout

  • Offline Offline
  • Berichten: 415
Re: De CanBus komt naar Kranenberg, Arduino's en de CanBus
« Reactie #54 Gepost op: 19 november 2019, 13:47:06 »
Hoi Meino,

niet zeker of je deze kent

https://openlcb.org/about-openlcb/introduction-to-openlcb/

Misschien een idee om (mee) op een standaard in wording te springen.

mvg,

Patrick Smout
Met vriendelijk groeten,

Patrick Smout

meino

  • Offline Offline
  • Berichten: 2085
Re: De CanBus komt naar Kranenberg, Arduino's en de CanBus
« Reactie #55 Gepost op: 19 november 2019, 14:26:55 »
Patrick

bedankt voor het linkje, ik ga het zeker eens goed bestuderen.

Groet Meino
A clean desk is a sign of an empty mind

Kranenberg
De CanBus komt naar Kranenberg

Karst Drenth

  • Offline Offline
  • Berichten: 10212
  • NS blauw, groen, rood, bruin, grijs en standgroen
    • Plan U op Sleutelspoor
Re: De CanBus komt naar Kranenberg, Arduino's en de CanBus
« Reactie #56 Gepost op: 19 november 2019, 14:46:17 »
Citaat van: meino
ik ga het zeker eens goed bestuderen.

En als je dan toch bezig bent ;)

https://www.nmra.org/lcc

Een nieuwe NMRA standaard gebaseerd op OpenLCB.  8)

Grtzz,

Karst

meino

  • Offline Offline
  • Berichten: 2085
Re: De CanBus komt naar Kranenberg, Arduino's en de CanBus
« Reactie #57 Gepost op: 19 november 2019, 17:35:35 »
Na al deze discussies wordt het weer tijd om naar het onderwerp terug te keren.
Wel is het zo, dat ik toch nog even goed naar mijn code heb gekeken. En naar aanleiding van de discussie over interfaces, heb ik toch nog wat gewijzigd. Ik heb nu een echte interface gedefinieerd in de vorm van een virtuele klas (CbusInterface).
Ik laat nu het CanBus.h bestand zien en aan de hand hiervan iets te vertellen.

Ik begin met een stel definities:

#include <SPI.h>
#include <mcp2515.h>

#define CANBUS_DEBUG 0
#define CANBUS_DEBUG1 0

//
// Id's of the different types of controllers on the CanBus
//      Maximum nr of ID's is 127!!!
//
enum systemId {
    BEZETMELDER_CONTROLLER_ID = 1,   //  16 Bezetmelder controllers supported
    WISSEL_CONTROLLER_ID = 17,       //  16 Wissel controllers supported
    SEIN_CONTROLLER_ID = 33,         //  16 Sein controllers supported
    DCC_INTERFACE_ID = 126,          //   1 DCC Interface system supported
    S88_INTERFACE_ID = 127           //   1 S88 Interface system supported
};

//
//  Error codes
//
enum cbError {
    CB_OK = 0,
    CB_FAIL = 1
};

//
//  There are several types of messages, each is identified by an unique number
//  the lowest id's have the highest priority
//
//  DCC_ACC   defines a DCC Accesory command
//  OCC_DT    defines an Occupance detector that triggered
//  DCC_LOC   defines a DCC locomotive command
//

enum messageId {
    OCC_DT = 1, DCC_ACC = 2, DCC_LOC = 3
};

//
//  Struct used for the Occupance Detector message
//
typedef struct
{
    unsigned short    address;
    byte              state;
} OCC_DT_MSG;

//
//  Struct used for the DCC Accessory command
//
typedef struct
{
    unsigned short    address;
    byte              direction;
} DCC_ACC_MSG;

//
// A request for sending a message is handled by putting it on
// the send queue. The heartbeat method is the responsible for
// the actual sending.
//
#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
#define NROFSENDBUFFERS 32      // Buffers on the MEGA
#endif
#if defined(__AVR_ATmega328P__) || defined(__AVR_ATmega168__)
#define NROFSENDBUFFERS 4       // Buffers on the UNO
#endif

//
//  Type definition for the call back routine which will handle a received
//  message.
//
typedef void (*msgReceiver_t)(unsigned char aMsgLen, void *msgData);
Hierin worden zaken als Systeem id's, bericht layouts, bericht types etc gedefinieerd.

De interface definitie die de klasse die met de physieke CanBus/bibliotheek communiceerd, moet implementeren.
//
//  The Interface which has to be implemented by all classes that seperate the
//  CanBus class from the used hardware and supporting library.
//
class CBusInterface {
protected:
    friend class CanBus; // Give CanBus access to the internals
       
    virtual void begin(byte aSystemId) = 0;
    virtual cbError sendMsg(messageId anId, unsigned int aMsgLen, void *msgData) = 0;
    virtual void heartBeat() = 0;
    virtual void setMsgReceiver(messageId aMsgId, msgReceiver_t aMsgReceiver) = 0;
    virtual void prepareForSend() = 0;
};
Alle methods van deze interface zijn protected, dit omdat deze niet direct vanuit de gebruikers schets aangeroepen mogen worden, maar dat altijd onder controle van de CanBus klasse moet gebeuren.

De klasse die met het MCP2515 kaartje via de "arduino_mcp2515_master" bibliotheek communiceert.
//
//  This class implents the CBusInterface and supports the MCP2515 chip in
//  combination with the "arduino-mcp2515-master" library.
//
class Mcp2515 : public CBusInterface {
private:
   
//
//  Stuff for the send buffers
//
#define MAXRETRIES 10
    int  sendRetryCount = 0;
    int  nrOfSendBuffers = 0;
    volatile long lastTimeSend = 0;

    volatile int firstEmptySB = 0;
    volatile int firstUsedSB = -1;
    volatile can_frame *sendBuffers = nullptr;
 
#define MESSAGE_WAIT_TIME 10                // Max 100 messages per second
    int  sendWaitTime = MESSAGE_WAIT_TIME;  // Minimum time between successive
                                            // sends, this to throttle the
                                            // the rate of messages produced
                                            // by this sender.
 
    byte systemId;
    MCP2515 *can_bus;
   
    msgReceiver_t msgReceiver[16];
   
    int activeFilter = 0;
   
    void setMaskAndFilter(const unsigned long aFilter);
    void acceptMsgId(messageId aMsgId);
   
    cbError sendMsg();
    void receiveMsg();
   
    init(int aCsPin, int aSendWaitTime, int aNrOfSendBuffers);
   
protected:
    friend class CanBus; // Give CanBus access to the internals
     
    void begin(byte aSystemId);
    cbError sendMsg(messageId anId, unsigned int aMsgLen, void *msgData);
    void heartBeat();
    void setMsgReceiver(messageId aMsgId, msgReceiver_t aMsgReceiver);
    void prepareForSend();
   
public:
    Mcp2515(int aCsPin);
    Mcp2515(int aCsPin, int aSendWaitTime, int aNrOfSendBuffers);
   
    int getSendWaitTime();
    void setSendWaitTime(int aSendWaitTime);
};
De methods van de CBusInterface zijn protected, zodat alleen de CanBus klasse toegang heeft. De constructors Zijn publiek, zodat deze objecten in de gebruikers schets gemaakt kunnen worden. Daar zijn er twee varianten van, een die een object met default waarden voor de sendbuffer en wacht tijd aanmaakt, en een variant waarin dit expliciet gedefinieerd wordt.
Daarnaast kan ook de wachttijd tussen twee Canbus berichten dynamisch gevarieerd worden, als daar behoefte aan zou zijn.

De klasse die binnen de schets het gebruik van de Canbus ondersteund.
//
//  The CanBus class that provides the sketch all the facilities to send and
//  receive CBus messages for the defined systems and message types.
//
class CanBus {
private:
    byte systemId;
    CBusInterface *sender;
    CBusInterface *receiver;

public:
    CanBus(byte aSystemId, CBusInterface *aSender, CBusInterface *aReceiver);
    void begin();
    void setMsgReceiver(messageId aMsgId, msgReceiver_t aMsgReceiver);
    cbError sendMsg(messageId anId, unsigned int aMsgLen, void *msgData);
    void heartBeat();
};
Dit zijn alle methods die beschikbaar zijn voor de gebruikers schets. De constructor. De method begin() waarmee je het CanBus object verteld dat hij moet starten.
De method setMsgReceiver() geeft het CanBus object een functie die hij zal aanroepen als er een bericht van het gegeven type is ontvangen, sendMsg() geeft het CanBus object een bericht om te versturen en heartBeat() moet continue aangeroepen worden om het CanBus object te laten werken.

Groet Meino

A clean desk is a sign of an empty mind

Kranenberg
De CanBus komt naar Kranenberg

Timo

  • Team encyclopedie
  • Offline Offline
  • Berichten: 4656
Re: De CanBus komt naar Kranenberg, Arduino's en de CanBus
« Reactie #58 Gepost op: 19 november 2019, 21:44:00 »
Nu we volgens mij allemaal op dezelfde pagina zitten ("we gaan elkaar niet overtuigen dus pak er een biertje bij" ;D) dus ik nog wel even losjes in te gaan.

In tegendeel. De identatie laat precies zien waar wat bijhoort.
Gemist dat ik de opmaak vernagelt heb? ;) (om helloWorld() te draaien moet x < 5 && y > 6, indentatie suggereert dat alleen x nodig is). Ofwel, precies mijn punt :angel:

Ik gebruik hiervoor: de bracket highlighting [...]

 ;D

Maar goed, zolang je het zelf consequent doet en dus als tool kunt gebruiken (y) Maar ook ik zou me achter de oren krabbel voor ik echt edits aan die code zou maken en dus gegarandeerd de consequentie zou slopen :police:

En absoluut, in C zijn macro's meestal de enige oplossing wat het onmisbaar maakt. Maar in C++ kennen we function overloading of inline functions :)

Ennuh, had startAfter() niet 4 parameters :angel: ;D

Als Arduino IDE alternatief kun je inderdaad sloeber gebruiken. Maar ook de Arduino CLI werkt wel aardig waarvoor mensen ook bijvoorbeeld Notepad++ integratie voor maken.

OpenLCB en LCC, ik heb weer genoeg te lezen ::)

@meino, en top dat je nog lekker bezig bent! (y)


Timo die de LP gaat omkeren en nog even een hoofdstukje analoog gaat lezen...
Verzonden vanaf mijn desktop met Firefox

Robert E

  • Offline Offline
  • Berichten: 909
    • Robert’s Modelspoor Pagina
Re: De CanBus komt naar Kranenberg, Arduino's en de CanBus
« Reactie #59 Gepost op: 19 november 2019, 22:05:55 »
Citaat
dus pak er een biertje bij

Wijntje ook goed ? :)

Goed te zien dat Meino verder gaat :)

Die int en byte, in gcc (wat onderhuids in Arduino zit) kun je denk ik beter gebruik maken van int16_t / uint16_t  en int8_t / uint8_t al die typen.
Maar wie ben ik ......

https://www.gnu.org/software/libc/manual/html_node/Integers.html

Maakt het net iets duidelijker (laat staan de mogelijke ellende als je van een 8 bits (Atmel AVR) geval naar een 32 bits (STM32F1 en hoger bijv) geval gaat).

Citaat
OpenLCB en LCC, ik heb weer genoeg te lezen

Sluit ik me bij aan...

Alleen nog een bus variant dus ..... Zo is er nog deze

http://bidib.org/

Mvg

Robert
« Laatst bewerkt op: 19 november 2019, 22:09:07 door Robert E »
MDRRC-II (Lite) goedkope DIY centrale voor DCC en MM.
Heb je een vraag, stuur me dan een mail via mijn site ipv persoonlijk bericht...