Pagina 1 di 1

Gestione CV 'lunghe' Arduino

Inviato: mercoledì 3 giugno 2020, 8:33
da Fidax
Buongiorno, sto provando a realizzare alcuni Decoder DCC con l'uso di Arduino IDE e relativa libreria NmraDCC.
Premetto che non posseggo una centrale DCC al momento, essendo su sistema Marklin ho ancora una vecchia MS1, ma posseggo il lokprogrammer che ha una sezione per leggere e scrivere CV in modalità 'Binario di Programmazione'.

Studiando suddetta libreria ho trovato che i metodi usati per gestire le CV (leggere e scrivere) hanno parametro per 'scegliere su quale CV lavorare' in formato 'uint16_t'

Codice: Seleziona tutto

 /*+
   *  getCV() returns the selected CV value.
   *
   *  Inputs:
   *    CV    - CV number. It must point to a valid CV.
   *
   *  Returns:
   *    Value - CV value. Invalid CV numbers will return an undefined result
   *            since nothing will have been set in that EEPROM position.
   *            Calls notifyCVRead() if it is defined.
   */
  uint8_t getCV( uint16_t CV );

Ora, il formato uint16_t (unsigned int su 16 bit) permette di contenere valori da 0 a 65.535‬ :D
Pertanto ho provato a leggere una CV superiore alla 255 tramite il lokprogrammer e arrivo fino alla 1023 (i valori successivi non sono selezionabili dal lokprogrammer) e vengono lette senza problemi.

La mia domanda allora è: ma le CV31 e 32 a cosa servono?
Durante le prove che ho fatto tali cv non erano nemmeno 'gestite' nel codice che ho scritto per il micro, eppure il lokprogrammer leggeva 'CV alte' lo stesso.
Il non avere bisogno delle CV31 e 32 è una caratteristicha del LokProgrammer? Sono oboslete e non servono più? Sono abbastanza confuso in merito.

Anche perchè nel mio progetto arrivo massimo alla CV351, non avendo bisogno di CV più alte non sarebbe male l'idea di usare il vantaggio datomi dal formato uin16_t e di poter ignorare la gestione delle CV31 e 32.

Re: Gestione CV 'lunghe' Arduino

Inviato: mercoledì 3 giugno 2020, 9:17
da Buddace
CV31 e cv32 sono forse le cv indice per accedere a quelelsuperiori a 255 ? Non ho mai indagato ma credo fosse un walkaorund per ovviare ad una limitazione del multimaus. Il range ammesso dall'NMRA per le cv è 0-1023 quindi è giusto che si usa una variabile a 16 bit

Re: Gestione CV 'lunghe' Arduino

Inviato: mercoledì 3 giugno 2020, 9:24
da Fidax
Quindi con centrali che gestiscono il range 0 - 1023 non sono necessarie le CV31 e 32.
Mentre sembrano servire se si devono programmare le CV oltre alla 1024

Re: Gestione CV 'lunghe' Arduino

Inviato: mercoledì 3 giugno 2020, 9:32
da Buddace
Fidax ha scritto:Quindi con centrali che gestiscono il range 0 - 1023 non sono necessarie le CV31 e 32.
Mentre sembrano servire se si devono programmare le CV oltre alla 1024

Sulla Claudia CS sicuramente non servono :D POi inverità non visto decoder con più di 1024 cv :D

Re: Gestione CV 'lunghe' Arduino

Inviato: mercoledì 3 giugno 2020, 9:39
da Fidax
Tale informazione mi riempie di felicità! :D :D :D

Uno dei decoder (più che un decoder é proprio un sistema di illuminazione) ha 32 Aux, ne servono di CV :wink: