Bonjour.
Il y a quelques lignes à ajouter ou modifier (Voir les commentaires : Ajouté ou Modifié)
(Les deux premières corrections sont indispensables si on n'utilise pas RailCom //#define ENABLE_RAILCOM)
- Dans le fichier : config.h (écrire 27 au lieu de UNUSED_PIN)
#define LABOX_MAIN_MOTOR_SHIELD F("LABOXMAIN"), \
new MotorDriver(32, 33, 27, UNUSED_PIN, 36, 0.80, 2500, UNUSED_PIN) // Modifié
#define LABOX_PROG_MOTOR_SHIELD F("LABOXPROG"), \
NULL, \
new MotorDriver(32, 33, 27, UNUSED_PIN, 36, 0.80, 2500, UNUSED_PIN) // Modifié
- Dans le fichier: DCCRMT.cpp
RMTChannel::RMTChannel(pinpair pins, bool isMain) {
byte ch;
byte plen;
byte dp; // * Ajouté
if (isMain) {
ch = 0;
plen = PREAMBLE_BITS_MAIN; // 16
} else {
ch = 2;
plen = PREAMBLE_BITS_PROG; // 22
}
// preamble
preambleLen = plen + 2; // plen 1 bits, one 0 bit and one EOF marker
preamble = (rmt_item32_t*)malloc(preambleLen * sizeof(rmt_item32_t));
dp = 0; // * Ajouté
#ifdef ENABLE_RAILCOM
dp = 1; // * Ajouté
setDCCBitCutOut(preamble); // * Symbole CutOut
#endif
for (byte n = dp; n < plen; n++) // * Modif
setDCCBit1(preamble + n); // preamble bits
- Dans le fichier: Railcom.cpp
void IRAM_ATTR timer_isr_CutOut() {
p++;
switch (p) {
case 1:
break;
case 2:
gpio_matrix_out(RAILCOM_PININV, 0x100, false, false);
gpio_set_level(RAILCOM_PININV, 1);
break;
case 3:
gpio_matrix_out(RAILCOM_PININV, RMT_SIG_OUT0_IDX + rmt_channel, true, false);
gpio_matrix_out(RAILCOM_PIN, RMT_SIG_OUT0_IDX + rmt_channel, true, false);
break;
default:
gpio_set_level(RAILCOM_PIN, 1); // * Ajouté
gpio_matrix_out(RAILCOM_PIN, RMT_SIG_OUT0_IDX + rmt_channel, false, false);
timerAlarmWrite(TimerCutOut, 160, false);
break;
}
}