mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Variablen in einem Tiny unter Bascom


Autor: Karsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nach mehreren Projekten mit ATMega's will mich jetzt an die kleinen
tiny's ran. Da ja diese keinen SRam haben, nun mein Problem:

Ich brauch 2 Byte Variablen. Wie kann ich diese im Bascom
implementieren?

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Keine Ahnung.
Aber nimm doch einfach den Tiny13, der hat 128Byte SRAM und sogar ADC
wenn erwünscht.

Gruß
Andi

Autor: Karsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe da was in der Hilfe gefunden:

$Tiny

Hat da jemand mit Erfahrung?

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja, ich hab das schonmal versucht mit dem $tiny und es hat nicht
funktioniert... in den Samples von Bascom ist allerdings für den 1200er
auch das $tiny verwendet... funktioniert bei mir leider genausowenig!

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bascom verwendet doch für den Datentyp integer sowieso
zwei-Byte-Variablen, wo ist da das Problem?

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das Problem ist, dass Bascom die Variablen in den SRam speicher, wobei
die meißten Tinys keinen SRam haben... also muss man Bascom sagen, dass
es sich um einen Tiny handelt, damit es die Variablen anders speichert!

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aus der Bascom (1.11.7.3)-Dokumentation:
(auf das unten angehängte Beispiel achten)


$Tiny

Instruct the compiler to generate initialize code without setting up
the stacks.

Remarks

The tiny11 for example is a powerful chip. It only does not have SRAM.
BASCOM depends on SRAM for the hardware stack and software stack.

When you like to program in ASM you can use BASCOM with the $TINY
directive.

Some BASCOM statements will also already work but the biggest part will
not work.

BASCOM will support a subset of the BASCOM statements and function to
be used with the chips without SRAM. There will be a special tiny.lib
that will use little registers and will have at most a 3 level deep
call since tiny chips do have a 3 level deep hardware stack that may be
used for calls.

Note that the generated code is not yet optimized for the tiny parts.
The $tiny directive is just a start of the tiny parts implementation!

No support is available for this feature until the tiny.lib is
implemented.




  $tiny
  dim X AS iram BYTE, y AS iram BYTE
  X = 1 : Y = 2 : X = x + y


Zitat aus einer Mail aus der Bascom-Mailingliste:

  You can do some things with tiny's with bascom.
  1) You need a $tiny directive.
  2) Only byte operations are supported - no words, longs or singles.
  3) Calls/gosubs only 3 deep - hardware stack.
  4) Only single maths operations per line.
  5) Not all the comands will work, some conditional branches
     (if/then) don't work as expected.

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja, das obige aus der Bascom Hilfe kenn ich schon... hab auch alles so
angewendet!

Bei dem Zitat kommt mir der Punkt 5 seltsam vor... wie soll ich
Überprüfungen auf nen bestimmten Wert meiner Byte-Variablen machen,
wenn nicht mit if???

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gibt es vielleicht "Select Case" in BASCOM?

Gruß
Andi

PS: Keine Ahnung von BASCOM, nur allgemeine Kenntnisse in Basic, also
bitte nicht hauen!

Autor: Raimond (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Andy

Ja, "Select Case" gibt es.

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK, dann kann man vielleicht damit mit einem Tiny Vergleiche
durchführen?

Gruß
Andi

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mhh... wäre ne Idee... Ich würde es zwar ne verstehen warum das geht und
if nicht, aber ich werds mal probieren, wenn ich wieder aus dem Urlaub
da bin!

Ich glaube, das wird jetzt erstmal der letzte Post sein, eh ich in den
Winterurlaub starte!
Erstmal danke für eure Hilfe!

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.