Forum: Mikrocontroller und Digitale Elektronik und es geht doch, DCC Dekoder in BASCOM


von Heiko B. (dh2faa)


Lesenswert?

Hallo zusammen,
nachdem meine kleine Modelleisenbahn (http://moba.dh2faa.de) mit dem 
digitalen System DCC läuft, habe ich mir überlegt, ob man einen eigenen 
DCC Dekoder bauen kann. Als Plattform soll meine eigenes Board mit dem 
TINY45 dienen.
Programmiert wird mit BASCOM. Und, es hat geklappt, ich habe mit BASCOM 
ein Gerüst für einen DCC Dekoder entwickelt. Mit nur ganz wenig 
Änderungen lässt sich daraus einen Funktionsdekoder machen. Für einen 
Lokdekoder müssen noch
Motoransteuerung und Regelung implementiert werden. Auch das Setzen der 
Adresse per DCC fehlt noch. Die Adresse ist auf 99 fest eingestellt.
Der Sourcecode ist hier: http://moba.dh2faa.de/dcc/dccdekoder.bas
Ich bin auf euer Feedback gespannt,
viel Spaß, Heiko, DH2FAA

: Bearbeitet durch User
von Jens-Uwe (Gast)


Lesenswert?

Heiko B. schrieb:
> Für einen Lokdekoder müssen noch
> Motoransteuerung und Regelung implementiert werden.
Und das ist die eigentliche Schwierigkeit...

Jens-Uwe

von Wolf K. (wolf1502)


Lesenswert?

Hallo Heiko,
bist Du noch an dem Projekt dran. Würde mich gern einbringen.
Ist der DA-Wandler das Problem ?
Ich möchte als erstes einen Decoder realisieren, der mit der 
Fahrspannung z.B. einen Motor einschaltet um z.B. an dem LGB Stahlwagen 
die Trommel zu drehen.
Das geht zwar mit jedem Wald u Wiesen Decoder, aber ich möchte 
Endschalter abfragen.
Ohne ein Servo zu schlachten.
Warum hast Du keinen Atmega328 genommen, der kann 20 MHz und das könnte 
bei der Weiterverarbeitung der Signale von Vorteil sein.
Aber wahrscheinlich hat jeder so seine Lieblinge.
Schönen Sonntag
Wolf

von Harald W. (wilhelms)


Lesenswert?

Jens-Uwe schrieb:

>> Für einen Lokdekoder müssen noch
>> Motoransteuerung und Regelung implementiert werden.
> Und das ist die eigentliche Schwierigkeit...

Das ist relativ. Manche kommen mit Hardware besser zurecht,
manche mit Software.

: Bearbeitet durch User
von Heiko B. (dh2faa)


Lesenswert?

Hallo Wolf,
im Moment beschäftige ich mich mit anderen Dingen.
Bei dem Decoder ging es mir in erster Linie darum zu zeigen,
das man sehr wohl einen DCC-Decoder in BASCOM programmieren kann.
Die Hauptaufgabe ist das implementieren des Timings und der
Kommunikation. Das habe ich gelöst, und somit eine Basis geschaffen,
mit der man Arbeiten kann. Aus Softwaresicht ist der Controller dabei
mehr oder weniger egal, die Anpassung auf andere Atmels ist simpel.
Gruß
Heiko

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Harald Wilhelms schrieb:
> Das ist relativ. Manche kommen mit Hardware besser zurecht,
> manche mit Software.

 Soviel ich sehe, hat er mit sehr viel durcheinandergewürfeltem
 Spaghetti Code und noch mehr unnützen Deklarationen genau nichts
 vollbracht.

von Harald W. (wilhelms)


Lesenswert?

Marc Vesely schrieb:

>> Das ist relativ. Manche kommen mit Hardware besser zurecht,
>> manche mit Software.
>
>  Soviel ich sehe, hat er mit sehr viel durcheinandergewürfeltem
>  Spaghetti Code und noch mehr unnützen Deklarationen genau nichts
>  vollbracht.

Nun, ich gehöre zu denen, die sich besser mit Hardware auskennen.
Deshalb habe ich mir den Code nicht angesehen. :-)

von Toralf W. (willi)


Lesenswert?

Morgen,

das Problem ist nicht ein DCC Signal überhaupt einzulesen. Sondern auch 
noch etwas vernünftiges einzulesen wenn das Fahrzeug auf dem Gleis 
fährt. So in Bezug auf Kontaktgabe.

Dann gleichzeitig dazu eine Brauchbare Motorregelung hinzubekommen und 
eventuell noch ein paar schöne Effekte oder auch nur Dimmung an den 
Funktionsausgängen.

Gehen tut das alles, selbst mit modernen Funktionen wie z.B. RailCom 
Rückmeldungen, was man auch prima an Beispiel von Lenz Decodern (die 
waren mal einer der führenden DCC Entwickler), welche auf einem 
ATmega168 basieren sehen. Ich glaube allerdings nicht das die in Bascom 
programmiert sind. ;-)

LG Willi

von greg (Gast)


Lesenswert?

Heiko B. schrieb:
> Bei dem Decoder ging es mir in erster Linie darum zu zeigen,
> das man sehr wohl einen DCC-Decoder in BASCOM programmieren kann.

Schöner proof of concept, denn nachdem ich einmal gesehen habe, was für 
Maschinencode der BASCOM-Compiler raushaut, hab ich alle Hoffnung 
verloren. Das ist so ineffizient, es könnte fast ein Interpreter sein. 
Dazu kommen dann die ganzen Einschränkungen der Sprache.

Wenn's schon BASIC sein muss... es gibt da einige BASIC-artige Sprachen, 
die deutlich besser sind. Oder man kann für zeitkritische Dinge 
Assembler nehmen.

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.