PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Daten Speichern Attiny 13



Powell
16.03.2007, 17:30
Hallo

Ich wollte mal in Erfahrung bringen ob es eigentlich möglich ist, Daten dauerhaft auf dem Controller zu speichern, ohne dass man ihn vom PC aus brennt. Damit meine ich also, dass wenn der Controller in seiner Anwendung betrieben wird, man z.B. einen Taster drückt, damit ein internes Bit setzt, anschließend die Spannungsversorgung abschaltet und beim nächsten REstart das Bit immernoch gesetzt ist? Wenn ja: Wie realisiert man das Befehlsmäßig in Bascom? Und wenn es beim Tiny nicht geht: Gehts den z.B. beim ATMEGA 8?

Grüße Paul

Rofo88
16.03.2007, 17:51
Der Tiny13 hat EEprom und kann damit Daten auch ohne Spannung speichern.
Schaue Dir mal READEEPROM in der Bascom-Hilfe an.

MfG

Powell
16.03.2007, 19:06
Hi

super dass das geht... ich hab mir jetzt die Hilfe von Bascom mal angeschaut und blicke jetzt gar nicht durch... entweder es liegt an mir oder es ist wirklich blöd erklärt:


B = 100

Writeeeprom B , Label1

B = 101

Writeeeprom B




'read it back

Readeeprom B , Label1

Print B 'prints 1



Nach meiner Logik müsste da eigentlich am ende stehen 'prints 101 und nicht 'prints 1

Naja egal, ich bin noch nicht so lang dabei und will mal Bascom nicht unterstellen einen Fehler in der Hilfe eingebaut zu haben. Kann mir vielleicht jemand auf einfache Art und weise - gern auch mit Code - erklären wie ich ein einfaches Byte während dem laufenden Programm per tastendruck verändern kann, und es dann beim nächsten Restart genau so wie es am Ende stand wieder eingelesen wird? Das wäre nett O:)

Grüße Paul

Ratber
16.03.2007, 19:23
Das in der Hilfe ist ein Schreibfehler.

Wenn du 101 in die Zelle schribst dann liest du natürlich auch 101 wieder aus.

Elektronik303
16.03.2007, 20:20
Hi, hab auch ein kleines Problem damit, also wenn ich es so:


$lib "lcd4busy.lbx"
$regfile = "attiny2313.dat"
$crystal = 4000000

Config Lcd = 16 * 2
Const _lcdport = Portb
Const _lcdddr = Ddrb
Const _lcdin = Pinb
Const _lcd_e = 1
Const _lcd_rw = 2
Const _lcd_rs = 3
Waitms 100
Initlcd
Cls
Cursor Off Noblink

Dim B As String * 11

$eeprom
Label1:
Data 1 , 2 , 3 , 4 , 5

Label2:
Data 10 , 20 , 30 , 40 , 50
$data


B = "Hallo ihr!"
Writeeeprom B , Label1

B = ""

Readeeprom B , Label1
Lcd B

End

Versuche zeigt mir mein display "Hallo ihr!" an, wenn ich aber beim nächsten übertragen das "Writeeeprom B,Label 1" weglasse zeigt er mir nur 11 Kästchen an (Wegen Dim B as String * 11 denk ich mir mal). Woran könnte das liegen? Wird vllt. beim Übertragen der EEprom gelöscht und deshalb findet er nichts oder woran liegt das?

Ratber
16.03.2007, 22:42
Ja,das kann auch nicht funktionieren.

Der Datentyp muß schon passen.

Bevor ich mir jetzt fransen an die Finger schreibe wäre es ganz gut wenn du dir in der Befehlsref. die benutzten Befehle und insbesondere "Data" anschaust.

Elektronik303
17.03.2007, 10:15
Ok, danke klappt jetzt!