Forum: Mikrocontroller und Digitale Elektronik Trinärcodierung


von Markus M. (atmelfreak100)


Lesenswert?

Hallo zusammen,

ich zerbreche mir hier aktuell den Kopf, wie man die Trinärcodierung 
macht.
Es geht um das Märklin Motorola Format, siehe hier:
https://www.digital-bahn.de/info_tech/motorola.htm

Die Adresse geht von 1-80. Auf der Seite ist nur bis 64 aufgeführt. Es 
geht um die Decoderadresse. Ich habe also binär 1 - 80 und brauche 
trinär die entsprechende Adresse. ich sehe da kein Muster und ich 
verstehe auch nicht wie ich das codieren muss. Die Decodierung ist 
einfach hingegen, das klappt. Das sind nur 3 einfache Abfragen.

Kann mir da jmd. helfen?

von Dieter S. (ds1)


Lesenswert?

Was genau ist denn unklar, ich habe unten ein Beispiel von der Seite 
genommen, Dekoder-Adresse 32.

Die trinären Smybole sind
1
00 -> 0
2
11 -> 1
3
10 -> 2
4
01 -> ungültig

Das Beispiel mit Dekoder-Adresse 32:
1
32:  10 11 00 11 00
2
3
32:  10          11          00          11          00
4
5
     (2 * 3^0) + (1 * 3^1) + (0 * 3^2) + (1 * 3^3) + (0 * 3^4)
6
7
      2        +  3        +  0        +  27       +  0 = 32

Edit: Wobei man "00" ganz rechts auch weg lassen kann weil das laut der 
Webseite immer "00" ist

: Bearbeitet durch User
von Markus M. (atmelfreak100)


Lesenswert?

Dieter S. schrieb:
> Was genau ist denn unklar, ich habe unten ein Beispiel von der Seite
> genommen, Dekoder-Adresse 32.
>
>
1
> 32:  10 11 00 11 00
2
> 
3
> 32:  10          11          00          11          00
4
> 
5
>      (2 * 3^0) + (1 * 3^1) + (0 * 3^2) + (1 * 3^3) + (0 * 3^4)
6
> 
7
>       2        +  3        +  0        +  27       +  0 = 32
8
>

Das ist doch die Decodierung, oder? Die ist mir klar. Ich brauche es 
genau umgekehrt. Sprich ich habe die binäre Adresse 32 und möchte die in 
eine trinäre Adresse wandeln. Wie komme ich von binär 32 (0b00000100) 
auf trinär 0b11001101 ??

: Bearbeitet durch User
von Daniel F. (df311)


Lesenswert?

grundsätzlich ist es komplett wurscht, in welches Zahlensystem man 
umrechnet - das Vorgehen ist immer gleich.
und wenn du anstatt der Binärdarstellung von 32 mit der 
Dezimaldarstellung rechnest, dann gehts leichter in den Kopf

z.B.

https://www.massmatics.de/merkzettel/#!1313:Umrechnung_dezimal_-_hexadezimal
1
"1" "0" "1" "2"
2
10 00 11 10

: Bearbeitet durch User
von Dieter S. (ds1)


Lesenswert?

Das funktioniert genauso wie bei anderen Zahlensystemen auch, also z.B. 
so bei 32:
1
32 % 3 = 2   30 / 3 = 10
2
10 % 3 = 1    9 / 3 = 3
3
3  % 3 = 0    3 / 3 = 1
4
1  % 3 = 1

Das Ergebnis der MOD-Operation ist das Symbol (niederwertigste Stelle 
zuerst), mit der Division wird die Zahl für den nächsten Schritt 
ermittelt (man kann natürlich auch "32 / 3" und "10 / 3" berechnen und 
die Nachkommastellen weg lassen).

von Markus M. (atmelfreak100)


Lesenswert?

Dieter S. schrieb:
> Das funktioniert genauso wie bei anderen Zahlensystemen auch, also z.B.
> so bei 32:
>
>
1
> 32 % 3 = 2   30 / 3 = 10
2
> 10 % 3 = 1    9 / 3 = 3
3
> 3  % 3 = 0    3 / 3 = 1
4
> 1  % 3 = 1
5
>
>
> Das Ergebnis der MOD-Operation ist das Symbol (niederwertigste Stelle
> zuerst), mit der Division wird die Zahl für den nächsten Schritt
> ermittelt (man kann natürlich auch "32 / 3" und "10 / 3" berechnen und
> die Nachkommastellen weg lassen).

Danke, das war verständlich und klar, hätte ich auch selbst drauf kommen 
können aber wie das so ist, aus dem üblichen System raus und Brett vor 
dem Kopf. Vielen Dank!

von Christian M. (christian_m280)


Lesenswert?

Einfach noch ein bisschen warten. Märklin will ja selber weg von 
Motorola. Dann ist alles DCC!

Gruss Chregu

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.