Hallo Das angehangene Stückchen Programm KANN so nicht laufen, das weiß ich. Es dient nur zur Verdeutlichung dessen, was ich machen möchte. Ich habe mal den Versuch machen wollen, das DCC-Signal (Modellbahn) zu dekodieren. Leider scheitere ich schon sofort daran, daß der Tiny 15, den ich hier massenhaft habe, keinen statischen RAM hat und ich daher keine Variablen dort unterbringen kann. Was kann ich tun, außer meine Variablen in den Registern des Prozessors zu speichern? Mit einem größeren Prozessor z.B. ATTINY2313 hätte ich das Problem nicht, nur wird das räumlich zu groß.:-( Grübelnd Erwin
@Benedikt Das wir wohl die beste Lösung sein, einen Attiny 25 zu nehmen, der ist auch schön klein. @Marius ...das habe ich befürchtet ;-) (Schluchts, ich will auf meine alten Tage nicht mehr Assembler lernen) @Simon ...jedenfalls gibt es dafür eine .Def/Dat -Datei. Wenn ich das Programm dort oben durch den Syntaxcheck jage, erzählt er mir, daß der Tiny15 keinen RAM hat. (Womit er zweifellos Recht hat) ;-) Gruß Erwin
Habe leider keine DCC-Zentrale, würde Dir sonst gerne (in ASM) helfen. ...
@Hannes Ich habe auch keine DCC-Zentrale im üblichen Sinn sondern mein Rechner ist die Zentrale. Das läuft mit DDW (Dirékt-Digital für Windows) Hier findet man die Programme, die dafür gebraucht werden: http://home.snafu.de/mgrafe/ Man benötigt nur noch einen Booster (Leistungsverstärker), der sich mit z.B. L298 und ein paar weiteren Bauelementen gut realisieren läßt. (siehe mein Bild oben) Weiterhin braucht man Dekoder für die Weichen und Signale; ich habe den hier gebaut: http://www.opendcc.de/modell/opendecoder/opendecoder_sw_schalt.html Dort war noch ein Fehler im Schaltbild, (Pin7 und 8 vom Optokopler müssen verbunden werden, Autor weiß Bescheid) Jetzt wollte ich anfangen, mir Dekoder für die Lok´s zu bauen, aber da hängt´s. MADDAX hatte schon mal im Forum "Codesammlung" ein Programm veröffentlicht, aber ich weiß nicht, was nun dort der endgültige Code ist und verstehe nichts von Assembler. Gruß Erwin
Man kann den Tiny15 in C programmieren, habe ich schon gemacht. Allerdings nicht mit gcc, sondern mit ICC. Ich hatte damals eine 14-Tage (oder so) Probeversion aus dem Netz und mich mit dem Projektchen entsprechend beeilt (I2C-Ansteuerung eines Audio-DACs). Variablen kann man soviele benutzen, bis ihm die Register dafür ausgehen. Der Befehlssatz kennt einen indizierten Registerzugriff, das ermöglicht ihm sogar einen kleinen Stack. Im ICC kann man die Grenze zwischen Variablen und Stack einstellen. Man kriegt so einiges rein in das kleine Ding, sauber in C geschrieben. Ich hatte den ADC in Betrieb (um ein Lautstärkepoti zu lesen), Konstanten aus dem EEPROM gelesen, Sleep Modus, Watchdog und wie gesagt I2C, per Bitbanging.
@Jörg Ich danke Dir für diesen Tip. Allerdings sehe ich C als noch schwerer verständlich an als Assembler. Das werde ich mir nicht mehr antun. ;-) Aber selbst mit C würde ich mit den zur Verfügung stehenden Registern nicht reichen; ich sehe ja in meinem Ablaufplan, wieviele Variablen ich brauche und wie "lang" die teilweise sind. Das is ja unabhängig von der Sprache, die ich benutze so. Da wird es noch das Einfachste sein, sich mit dem Attiny25 zu befassen, den kann ich "normal" programmieren. Er hat 128 Byte SRAM drin. Gruß Erwin
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.