Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Sujets - lmollard

Pages: [1]
1
Bonjour,

Je viens de mettre à jour la bibliothèque DCCpp depuis la version 1.3.7 vers la dernière en date (la 1.4.1) et depuis, j’ai les erreurs de compilation ci-dessous (je n’ai pas changé mon programme entre temps, et c'est ainsi sur mes 2 ordinateurs (Linux et Windows 10)), et du coup, impossible de l’utiliser. Cela fonctionne de nouveau quand je downgrade en 1.3.7.

/home/lmollard/Arduino/libraries/DCCpp/src/Locomotives/Locomotive.cpp:10:1 : error : ’Locomotive’ does not name a type
Locomotive::Locomotive(const char* inName, uint8_t inSpeedRegister, uint16_t inAddress, uint8_t inSpeedMax)
^
/home/lmollard/Arduino/libraries/DCCpp/src/Locomotives/Locomotive.cpp:25:1 : error : ’Locomotive’ does not name a type
Locomotive::Locomotive(const char* inName, uint8_t inSpeedRegister, uint8_t inFunctionRegister, uint16_t inAddress, uint8_t inSpeedMax)
^
/home/lmollard/Arduino/libraries/DCCpp/src/Locomotives/Locomotives.cpp:10:1 : error : ’Locomotive’ does not name a type
Locomotive* Locomotives::pFirstLocomotive = NULL ;
^
/home/lmollard/Arduino/libraries/DCCpp/src/Locomotives/Locomotives.cpp:11:6 : error : ’Locomotives’ has not been declared
bool Locomotives::useFunctionRegister = false ;
^
/home/lmollard/Arduino/libraries/DCCpp/src/Locomotives/Locomotives.cpp:13:1 : error : ’Locomotive’ does not name a type
Locomotive* Locomotives::get(uint16_t inAddress)
^
/home/lmollard/Arduino/libraries/DCCpp/src/Locomotives/Locomotives.cpp:29:1 : error : ’Locomotive’ does not name a type
Locomotive* Locomotives::get(const char* inName)
^
/home/lmollard/Arduino/libraries/DCCpp/src/Locomotives/Locomotives.cpp:45:6 : error : ’Locomotives’ has not been declared
void Locomotives::remove(uint16_t inAddress)
^
/home/lmollard/Arduino/libraries/DCCpp/src/Locomotives/Locomotives.cpp:49:6 : error : ’Locomotives’ has not been declared
void Locomotives::remove(const char* inName)
^
/home/lmollard/Arduino/libraries/DCCpp/src/Locomotives/Locomotives.cpp : In function ’void remove(const char*)’ :
/home/lmollard/Arduino/libraries/DCCpp/src/Locomotives/Locomotives.cpp:49:6 : error : ambiguating new declaration of ’void remove(const char*)’
In file included from /home/lmollard/ArduinoIDE/hardware/arduino/avr/cores/arduino/Print.h:24:0,
from /home/lmollard/ArduinoIDE/hardware/arduino/avr/cores/arduino/Stream.h:26,
from /home/lmollard/ArduinoIDE/hardware/arduino/avr/cores/arduino/HardwareSerial.h:29,
from /home/lmollard/ArduinoIDE/hardware/arduino/avr/cores/arduino/Arduino.h:233,
from /home/lmollard/Arduino/libraries/DCCpp/src/Locomotives/Locomotives.cpp:7 :
/home/lmollard/ArduinoIDE/hardware/tools/avr/avr/include/stdio.h:960:12 : note : old declaration ’int remove(const char*)’
extern int remove(const char *pathname) ;
^
/home/lmollard/Arduino/libraries/DCCpp/src/Locomotives/Locomotives.cpp : At global scope :
/home/lmollard/Arduino/libraries/DCCpp/src/Locomotives/Locomotives.cpp:53:5 : error : ’Locomotives’ has not been declared
int Locomotives::count()
^
/home/lmollard/Arduino/libraries/DCCpp/src/Locomotives/Locomotives.cpp : In function ’int count()’ :
/home/lmollard/Arduino/libraries/DCCpp/src/Locomotives/Locomotives.cpp:57:2 : error : ’Locomotive’ was not declared in this scope
Locomotive* pCurr = pFirstLocomotive ;
^
/home/lmollard/Arduino/libraries/DCCpp/src/Locomotives/Locomotives.cpp:57:14 : error : ’pCurr’ was not declared in this scope
Locomotive* pCurr = pFirstLocomotive ;
^
/home/lmollard/Arduino/libraries/DCCpp/src/Locomotives/Locomotives.cpp:57:14 : note : suggested alternative : ’perror’
Locomotive* pCurr = pFirstLocomotive ;
^
perror
/home/lmollard/Arduino/libraries/DCCpp/src/Locomotives/Locomotives.cpp:57:22 : error : ’pFirstLocomotive’ was not declared in this scope
Locomotive* pCurr = pFirstLocomotive ;

Auriez-vous une piste à me donner pour faire de nouveau fonctionner mon programme avec la 1.4.1 ?

Question subsidiaire (du coup à propos de la 1.3.7 pour l'instant) : Je n'ai pas trouvé comment désactiver les logs qui apparaissent dans le moniteur série (Message du type : <T1 8068 0 0>) ? Car ils ralentissent terriblement l'exécution du programme. J'ai pourtant bien commenté DCCPP_DEBUG_MODE, DCCPP_DEBUG_VERBOSE_MODE et DCCPP_PRINT_DCCPP dans DCCpp.h.

Par avance, un grand merci pour votre aide.

Bonne journée,
Lionel

2
Le logiciel DCC++ / DCCpp, Broches Arduino Mega + LMD18200
« le: juillet 18, 2020, 08:12:05 pm »
Bonjour à tous,

D’abord, un grand merci à tous les contributeurs pour ce super projet DCC++. En m’appuyant sur la bibliothèque DCCpp j’ai réalisé une carte "mère" qui accueille un Arduino Mega 2560 ainsi que de l’électronique annexe pour des sorties, et également une sortie pour le DCC avec le schéma pour un LMD 18200. En revanche, sur mon PCB, les sorties routées sur le LMD 18200 ne sont pas celles citées en exemple dans le tableau de cette page https://www.locoduino.org/spip.php?article187, mais sur les broches 2 et 13, au lieu des 3 et 12.

Pour l'instant, je ne fais que tester avec un programme de test basique pour tester le fonctionnement entre Arduino et LMD18200, sans utiliser ma carte "mère", et çà ne fonctionne pas.

Dans mon programme, j’appelle bien DCCpp::beginMain(UNDEFINED_PIN, 13, 2, UNDEFINED_PIN) (pour l’instant, je n’ai pas connecté le MAX471 le temps de mettre au point le système). Seulement, voilà, cela ne fonctionne pas, je n’ai pas de courant en sortie du LMD18200 pas plus que de mouvement de machine sur le réseau. En revanche, à titre d’essai, en paramétrant les broches 12 et 3, cela fonctionne correctement, mais ce n'est pas routé comme çà sur ma carte finale !

Voici le code utilisé :


/*************************************************************
project: <Dc/Dcc Controller>
author: <Thierry PARIS>
description: <Minimalist Dcc Controller sample>
*************************************************************/

#include "Commanders.h"

#include "DCCpp.h"

#define EVENT_NONE 0
#define EVENT_MORE 1
#define EVENT_LESS 2
#define EVENT_SELECT 3
#define EVENT_CANCEL 4
#define EVENT_MOVE 5
#define EVENT_START 6
#define EVENT_END 7
#define EVENT_EMERGENCY 8
#define EVENT_FUNCTION0 9
#define EVENT_FUNCTION1 10
#define EVENT_ENCODER 11

ButtonsCommanderPush buttonSelect;
ButtonsCommanderEncoder buttonEncoder;
ButtonsCommanderPush buttonCancel;
ButtonsCommanderPush buttonEmergency;
ButtonsCommanderSwitchOnePin buttonF0;
ButtonsCommanderSwitchOnePin buttonF1;

// in this sample, only one loco is driven...
int locoId; // DCC id for this loco
int locoStepsNumber; // 14, 28 or 128
int locoSpeed; // Current speed
bool locoDirectionForward; // current direction.
FunctionsState locoFunctions; // Current functions

void setup()
{
Serial.begin(115200);

buttonSelect.begin(EVENT_SELECT, A0);
buttonEncoder.begin(EVENT_ENCODER, 14, 8, 2);
buttonCancel.begin(EVENT_CANCEL, A3);
buttonEmergency.begin(EVENT_EMERGENCY, A4);
buttonF0.begin(EVENT_FUNCTION0, A1);
buttonF1.begin(EVENT_FUNCTION1, A2);

DCCpp::begin();
// Configuration for my LMD18200. See the page 'Configuration lines' in the documentation for other samples.
DCCpp::beginMain(UNDEFINED_PIN, 13, 2, UNDEFINED_PIN);


  DCCpp::powerOn();

locoId = 8068;
locoStepsNumber = 128;
locoSpeed = 0;
locoDirectionForward = false;

}

void loop()
{
DCCpp::loop();

 DCCpp::setSpeedMain(1, locoId, locoStepsNumber, 30, locoDirectionForward);
delay(1000);
 DCCpp::setSpeedMain(1, locoId, locoStepsNumber, 0, locoDirectionForward);
 delay(6000);

 
 DCCpp::setSpeedMain(1, locoId, locoStepsNumber, 30, true);
delay(1000);
 DCCpp::setSpeedMain(1, locoId, locoStepsNumber, 0, true);
 delay(6000);

}


Sauriez-vous m’indiquer ce que j’ai loupé ?

Merci et bonne journée.

Lionel

Pages: [1]