1zu160 - Forum



Anzeige:
Menzels Lokschuppen: Ihr N-Spezialist am Rhein

THEMA: Einstellen einer DCC langen Adresse

THEMA: Einstellen einer DCC langen Adresse
Startbeitrag
Wiencirz* - 07.10.10 14:04
Beim Ausprobieren der Einstellungen für Lange Adresse im DHP160 ist mir aufgefallen, das man mit dem Handregler Trix mit updatechip und der FCC der Anweisung in der Betriebsanleitung nicht folgen kann da es nicht richtig funktioniert ( oder ich bin zu doof dazu )
Hier steht:
Lange Lokadresse (CV 017 / 018): Die lange Lokadresse ist eine 14-Bit Adresse, die sich aus den CV’s 17 und 18 zusammensetzt, wobei die CV 017 den oberen Teil der Adresse und die CV 018 den unteren Teil der Adresse darstellen. Für die lange Adresse ist etwas Arithmetik erforderlich (die von den meisten Programmier-Einrichtungen selbsttätig durchgeführt wird):
( {CV 017} - 192 ) * 256 ) + {CV 018}. Zusätzlich muss zur Verwendung der langen Lokadresse in den Einstellungen (CV 029) das Bit 5 (Wert 32 = Lange Adresse
verwenden) eingeschaltet werden.
Adresse aus CV17 - 192 ) * 256 damit komme ich nicht klar.

Wenn ich jedoch  die gewünschte Lokadresse durch 256 dividiere, den sich ergebenden Wert vor dem Komma mit 192 addiere, und dann für CV 18   192 abziehe und den Wert mit 256 multipliziere und in CV18 eintrage, dann funktioniert es.
Wo mache ich da in der D&H Programmieranleitung etwas falsch.

Gruß Gunter

Hallo Gunter,
das kommt mir auch etwas komisch vor. Soweit ich das verstehe stehen im CV 017 von der 14 Bit Adressen die oberen 6 bits. Das heist die bits 7 und 8 von CV 017 werden für was anderes verwendet und müssen ausmaskiert werden.
1100.0000 binär = 192 dezimal
Aber diese 192 einfach abziehen haut nur hin wenn bit 7 und 8 immer gesetzt also 1 sind. Sobald eines davon 0 ist klappt nicht mehr.
z.B Adresse = 1000 dezimal
CV 017 = xx00.0011 CV 018 = 1110.1000 binär
Nu wirds interresant....
Sind nun die beiden xx = 0 dann ist der Wert CV 017 in dezimal = 3. Wenn ich davon 192 abziehe kommt eine negative Zahl raus und das mal 256. Demm geht eindeutig nicht :p
Sind die beiden xx = 1 dann ist der Wert CV 017 in dezimal = 195. Davon abgezogen 192 gibt 3.
3 x 256 = 768 dazu noch CV 018 = 232 dezimal addiert = 1000

Du siehst hängt von den beiden obersten bits 7 und 8 ab obs klappt oder nicht.

Korrekt wäre den Wert CV 017 mit 0011.1111 (63dez) "UND" zu verknüpfen das löscht die oberen 2 bits und man kann den erhaltenen Wert mit 256 multiplizieren.

Viele Grüße
  Bernd

PS. Der Punkt bei den binären Zahlen dient nur der bessern lesbarkeit

Edit: eine 1 vergessen :)

Hallo in die Runde

hier gibts einen netten Rechner für lange DCC- Adressen
http://www.opendcc.org/info/decoder/dcc_cv.html

Viele Grüße
Katerchen
der hier rechnet in beide Richtungen
http://atw.huebsch.at/Software/LongAdr.htm


Nur registrierte und eingeloggte User können Antworten schreiben.
Einloggen ->

Noch nicht registriert? Hier können Sie Ihren kostenlosen Account anlegen: Neuer N-Liste Account





Zum Seitenanfang

© by 1zu160.net;