Attiny2313, Bascom, Wert Speicher und Arbeiten

Gast #1445434
Ich hab einen zähler Programmiert (ist hier nur ne einfache version 
davon, der richtige ist mit menu führung und verschiedenen zählern & 
löschbar)

Dim A as Integer

Do
Home
LCD A
Locate 2,1
LCD "Wert"
If Count (Pinb.0) = 1 then
Count:
If Count (Pinb.1) = 0 then
A = A+1
else
Goto Count
Endif
Loop
End

Jetzt will ich den wert der In A steht behalten selbst wenn ich das 
gerät neustarte.
Wie geht das?

Mit
Dim A as eram Byte
funktioniert das schonmal nicht


mfg Jan
Gast #1446892
Danke erstmal für die tips, daraus ist das hier entstanden:


Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , 
Db7 = Portb.7 , E = Portd.2 , Rs = Portd.3

Config Lcd = 16 * 2
Cls
Cursor Off
Dim B As Integer
$eeprom
Label1:
Data 1 , 2 , 3 , 4 , 5
Label2:
Data 10 , 20 , 30 , 40 , 50
$data

Do
Home
Readeeprom B , Label1
Lcd B
Locate 2 , 1
Lcd "Wert"
If Pinb.0 = 1 Then
B = B + 1
Writeeeprom B , Label1
End If
Loop
End


Aber Warum fängt der Zähler mit dem wert -1 an? Kann man das ändern?

mfg Jan
#1447060
Hast du denn die eeprom Daten auch schon ins EEPROM geschrieben?
Ansonsten steht noch FFFF im EEPROM, was für ein Integer -1 bedeutet.
Musst du mit deinem Programmer separat schreiben.


ERAM Variablen kannst du nicht direkt in deinem Programm benutzen. Du 
musst sie einer SRAM Variablen zuweisen, also

Dim Eram_Int as Eram Integer
Dim Sram_Int as Integer

Sram_Int = Eram_Int      'Lesen
LCD Sram_Int
Sram_Int=1000
Eram_Int = Sram_Int      'Speichern
Gast #1447279
Bei der Verwendung des EEPROM sollte man berücksichtigen, dass die 
Lebensdauer hinsichtlich der Schreibzyklen begrenzt ist.

Man sollte keinesfalls, wie in dem Beispielprogramm gezeigt, in einer 
Schleife das EEPROM beschreiben.
1
Do
2
  ...
3
  Writeeeprom B , Label1
4
Loop

Besser wäre es, nur beim Abschalten den Zählerstand im EEPROM zu 
sichern. Wie man das realisiert, hängt vom Einsatzgebiet der Schaltung 
ab (Taster, den man beim Ausschalten betätigt oder ggf. Überwachung der 
Versorgungsspannung und beim Unterschreiten eines Schwellwertes 
speichern und abschalten)
Gast #1447450
kann ich sowas zum beispiel mit dem Analog eingang machen und einen 
großen Kondensator zwischen vcc und masse schalten? (das ding ist die 
Hintergrundbeleuchtung zieht so viel das so ein Kondensator sau schnell 
entladen ist, reagiert der µC bei 1Mhz schnell genug?

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.