-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 20

Thema: Attiny12 und Variablen

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    13.05.2005
    Alter
    26
    Beiträge
    601

    Attiny12 und Variablen

    Anzeige

    Hi,
    Ich habe ein problem und zwar ich muss bei einem attiny12 einen wert
    z.b. 1000 von 10000 abziehen. Nun habe ich geschrieben :

    $regfile = "at12def.dat"
    $crystal = 1000000
    Dim I As Eram Integer
    I = 10000
    Do
    I = I - 100
    Loop
    end

    Und da meint er invaling datatype

    ist das normal ?
    was könne man dagegen tun?
    Grüße Furtion

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    29
    Beiträge
    1.614
    eram iss eh schlecht, du solltest die register verwenden...

    Martin
    Ich will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds, Entwickler von Linux

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    13.05.2005
    Alter
    26
    Beiträge
    601
    Und wie progt man die register?
    ich habe davon 0 ahnung
    Grüße Furtion

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    29
    Beiträge
    1.614
    geh mal in icq on, da kann ich dir das besser erklärn, iss etwas komplitzierter

    Martin
    Ich will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds, Entwickler von Linux

  5. #5
    RN-Premium User Begeisterter Techniker
    Registriert seit
    30.04.2004
    Alter
    40
    Beiträge
    245
    Wäre nett, wenn das funktioniernde umgeschriebene Programm dann hier veröffentlicht wird, dann haben alle etwas davon.

    lg

    Alex

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    22.03.2005
    Beiträge
    91
    Ja, da bin ich auch gespannt,ob es mit Bascom eine Lösung gibt....
    wobei ich bezweifle, daß von Xryder tatsächlich etwas an Hilfe kommt.

    Gruß

    Sven

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    25.02.2005
    Beiträge
    175
    Was ist denn daran so kompliziert und geheimnisvoll?
    Lies Dir mal die Bascom-Hilfe zum Thema "Eram" durch. Du kannst diese Variablen nicht wie normale Variablen behandeln, z. B. in Berechnungen. Es sind nur direkte Zuweisungen erlaubt.

    Also musst Du über Zwischenvariablen gehen.

    Ich greife mal Dein Beispiel auf, Du solltest es so aber nicht einspielen:

    $regfile = "at12def.dat"
    $crystal = 1000000
    Dim H As Integer
    Dim I As Eram Integer
    H = 10000
    Do
    H = H - 100
    I=H
    Loop
    end


    Das EEPRPOM hat nur eine begrenzte Anzahl Schreibzyklen (nominell 100.000) und Du schreibst bei jedem Programmdurchlauf hinein. Gut möglich, dass der Chip das nur ein paar Sekunden mitmacht...

    EEPROM-Variablen schreibt man normalerweise nur in langsamen Zyklen oder innerhalb einer Setup-Routine, die nicht permanent durchlaufen wird.

    Viele Grüße

    Torsten

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    29
    Beiträge
    1.614
    @senf: wasn mit dir los, ich muss bloß bis morgen meine facharbeit fertigmachen, daher antworte ich da nich ad-hoc...

    @torsten: du hast das problem nicht ganz verstanden, er hatn attiny, die haben eben gar kein sram, also kannste h gar nicht deklarieren.
    Ich will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds, Entwickler von Linux

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    22.03.2005
    Beiträge
    91
    Hallo X-ryder,

    wenn ich Deine Antwort lese, kann ich eigentlich nur sagen, Frage nicht verstanden. Du hast seinen Quellcode nochmals abgeschrieben mit kleinen Korrekturen, toll! Das diese kleinen Tinys kein Sram haben, dürfte wohl jeder wissen, der ein Datenblatt lesen kann.
    Du hast aber so groß und breit erklärt man muss einfach die vorhandenen internen 32 Register als ram benutzen...kann man auch nachlesen.
    Was uns aber alle hier interessiert ist wie man das unter Bascom anstellt. Du hast ja erklärt du weißt wie es geht, also wir warten. Wobei ich nicht glaube, daß es mit Bascom klappt, wenn man sich das def-File mal genau anschaut...


    Gruß

    Sven

    P.s. Viel Erfolg bei Deiner Facharbeit.

  10. #10
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    29
    Beiträge
    1.614
    senf, ich bin dir echt dankbar, das du beiträge damit reinbekommst, das du andere versuchst fertigzumachen, ich hab dir das in deinem anderen post schon geschrieben, brauche das also hier nicht mehr zu tun.

    mein wissen zu dem thema ist, das man es mit Bascom hinbekommt, man muss bloß mindestens die hälfte aller befehle in assembler mnemonics schreiben, da die meisten methoden in Bascom eigene variablen im sram anlegen wollen, das kann man allerdings in der hilfe nachlesen, welche methode sowas macht, und wie die variablen heißen.

    nun ist es so, das ich kein assembler kann, und auch nicht die zeit habe, das ganze jetzt nachzuschlagen, also schlage ich vor, senfi schlägt das ganze mal nach, der hat ja auch genug zeit rumzumeckern.
    eins weiß ich auf jeden fall, einen wert in ein register legen tut man mit "ldi", die syntax dazu lautet:

    ldi Rxx, wert

    dabei ist xx eine zahl zwischen 0 und 31 und das ganze mit führenden nullen, also auch 01 oder so. wert kann dabei ein byte groß werden, mehr ist nicht möglich.

    wie man ein register ausliest ist eine andere sache, denn man muss den genauen anwendungszweck wissen, man braucht ja solang kein register auslesen, wie man es nicht irgendwo ausgeben will, dafür gibt es auch keine direkte methode (ja, ich weiß, iss unverständlich, einfach mehrmals lesen, wenn senfi dazu stellung nehmen will, meinetwegen...)

    man kann auch mit den variablen rechnen, das müsste dann mit add wert, wert oder sowas gehen, aber das will uns unser lieber senfi ja presentieren...

    ach ja, senfi, nochwas: manche leute können einfach nicht so gut englisch wie du und ich, die können nicht einfach mal ein datenblatt durchlesen. genauso schaut sich nicht jeder die defdatfiles an.

    mal sehen, ob ac immer noch einen gruß sendet.

    Martin
    Ich will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds, Entwickler von Linux

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •