Problem beim nmraDcc CV's lesen

Hallo,

ich versuche gerade einen Zubehördecoder mit der nmraDcc.lib zu erstellen. Das schalten der Ausgänge funktioniert schon.
Was ich nicht hin bekomme, ist das zurück lesen der CV's. Das Schreiben funktioniert. Der ACK-Impuls wird nicht generiert. Im Seriellen Monitor kommt keine Anzeige "ACK".
Meine Zentrale ist eine Ecos.
Kann mir jemand helfen?

Micha

#include <NmraDcc.h>

#define DCC_PIN 2
#define ACK_PIN 5
#define RED_LED 4
#define GREEN_LED 3

#define DECODER_ADDR 521

NmraDcc Dcc;

void notifyDccAccTurnoutOutput(uint16_t Addr, uint8_t Direction, uint8_t OutputPower) {

  if(Addr == DECODER_ADDR) {
    if(Direction == 0) {
      digitalWrite(RED_LED, HIGH);
      digitalWrite(GREEN_LED, LOW);
    } else {
      digitalWrite(RED_LED, LOW);
      digitalWrite(GREEN_LED, HIGH);    
    }
  }
    
  Serial.print("Address: "); Serial.println(Addr);
  Serial.print("Direction: "); Serial.println(Direction);
  Serial.print("OutputPower: "); Serial.println(OutputPower);
  Serial.print("CV 51: "); Serial.println(Dcc.getCV(51));


  Serial.println("--------------------");

  

}

void notifyCVAck(void) {
  Serial.println("ACK");
  digitalWrite(ACK_PIN, HIGH);
  delay(8);  
  digitalWrite(ACK_PIN, LOW);
}

void setup() {

  Serial.begin(115200);
  pinMode(ACK_PIN, OUTPUT);
  pinMode(RED_LED, OUTPUT);
  pinMode(GREEN_LED, OUTPUT); 
  digitalWrite(RED_LED, HIGH);
  digitalWrite(GREEN_LED, HIGH);


 
  Dcc.pin(digitalPinToInterrupt(DCC_PIN), DCC_PIN, false);
  Dcc.init(MAN_ID_DIY, 2, FLAGS_DCC_ACCESSORY_DECODER | FLAGS_OUTPUT_ADDRESS_MODE, 0);
  Dcc.setCV(CV_ACCESSORY_DECODER_ADDRESS_LSB, DECODER_ADDR & 0xFF);
  Dcc.setCV(CV_ACCESSORY_DECODER_ADDRESS_MSB, DECODER_ADDR >> 8);
}

void loop() {

  Dcc.process();
}

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.