mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATTINY15 ohne SRAM, wohin mit Variablen?


Autor: Erwin (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einen tiny25 nehmen...

Autor: Marius (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
tinys ohne SRAM programmiert man besser in assembler

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Unterstützt BASCOM überhaupt RAM-lose AVRs?

Autor: Erwin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@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

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe leider keine DCC-Zentrale, würde Dir sonst gerne (in ASM) helfen.

...

Autor: Erwin (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
@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/opendecod...
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

Autor: Jörg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Erwin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.