Hallo, ich möchte 4 Werte (3xWort 1xLong) im EEProm alle 10 minuten aufzeichnen und später alles an einen PC über RS232 senden und in einem Diagramm darstellen. Alles in Basic mit dem ATMega8 (EEProm 0,5KB) Die Daten wollte ich vielleicht mit Excel auswerten. Wieviele Werte bekomme ich im EEProm gespeichert? Wie kann man Werte hintereinander in das EEProm schreiben und wie oft? Oder sollte ich kein EEProm benutzen? Ich möchte die gesammelten Daten jeden Monat auf den PC übertragen und das EEProm dann wieder löschen. Brauche ich eine Long Variable um das Datum zu speichern? Also : 15.12.07 -> 151207 Wie würdet ihr das machen? Tobias
Alle 10 Minuten und das einen Monat lang ergibt 6x24x31 = 4463 DatenSÄTZE. Da ist ein 0,5kB EEPROM hoffnungslos überfordert.
Tobias Blome wrote: > Hallo, > ich möchte 4 Werte (3xWort 1xLong) im EEProm alle 10 minuten aufzeichnen > und später alles an einen PC über RS232 senden und in einem Diagramm > darstellen. Alles in Basic mit dem ATMega8 (EEProm 0,5KB) > > Die Daten wollte ich vielleicht mit Excel auswerten. > > Wieviele Werte bekomme ich im EEProm gespeichert? EEPROM gesamt: 512 Byte Bytes pro Datensatz: 3*2 Byte + 1*4 Byte = 10 Byte Speicherbare Datensätze: 512 Byte / 10 Byte = 51,2 (also 51 Datensätze) > Oder sollte ich kein EEProm benutzen? Ich möchte die gesammelten Daten > jeden Monat auf den PC übertragen und das EEProm dann wieder löschen. > Brauche ich eine Long Variable um das Datum zu speichern? > Also : 15.12.07 -> 151207 Nein. Ein paar Vorschläge von meiner Seite: 1. Wenn du im Abstand von 10 Minuten speicherst, musst du nicht jedes Mal das Datum ablegen. Das reicht einmal pro Tag. 2. Du musst auch nicht die komplette Jahreszahl (z.B. 2007) ablegen, es sei denn, dass die genaue Jahreszahl auch noch in 1000 Jahren richtig sein soll. Beschränke dich von mir aus auf die letzten beiden zwei Stellen (07), das reicht dann bis zum Jahr 2099. 3. Du kannst das Datum (mit zweistelliger Jahreszahl) auch in nur 2 Byte (1 Wort) ablegen. Rechne einfach: Jahr + Monat*100 + Tag*1200 Das ergäbe dann z.B. für den 31.12.2099 den Wert 38499. Dieser passt super in ein Wort. Gruß, Magnetus
Ach ja... ausserdem fallen an einem Tag sowieso 864 Byte an "Nutzdaten" an, welche du eh nicht in ein 512 Byte großes EEPROM gepresst bekommst. Gruß, Magnetus [Edit] Vom Datenaufkommen im Laufe eines ganzen Montas möchte ich jetzt gar nicht erst reden ;o) [/Edit]
hmmm also vielen Dank erstmal! In einem Monat dann 178560 Byte.... ist ja nicht viel - der Speicher ist nur ein bischen klein... und wenn man das in den Flashspeicher schreibt? Da hätte ich ja 8KB - das würde doch erst mal reichen, da das Programm ja wohl nicht soo groß wird... Gibt es eine Möglichkeit soetwas abzuspeichern - also ich kann ja nicht für jeden Wert eine Variable nehmen ;-)
>und wenn man das in den Flashspeicher schreibt? Da hätte ich ja 8KB - >das würde doch erst mal reichen, da das Programm ja wohl nicht soo groß >wird... Das kannst Du ja mal probieren ... ;-) Aber jetzt mal im Ernst: Häng ein serielles EEprom dran, das hat genügend Kapazität (z.B. 24C128 --> 16kByte).
hmm ich dachte die haben auch nicht viel mehr.... also ich habe bisher immer nur das interne benutzt und das so: Dim Evariable As Eram Byte Wert = Evariable ' zum lesen Evariable = Wert ' zum schreiben aber so kann man natürlich nicht 10.000 Werte schreiben! da gibts doch bestimmt noch eine andere Möglichkeit oder? Da fällt mir gerade ein: Wenn das EEProm über I2C angeschlossen wird, kann ich dann die Daten überhaut über RS232 auslesen und an den PC senden? Tobias
>Da fällt mir gerade ein: Wenn das EEProm über I2C angeschlossen wird, >kann ich dann die Daten überhaut über RS232 auslesen und an den PC >senden? Warum denn nicht? Der µC liest über I2C und schickt die Daten über die serielle Schnittstelle raus.
ist denn I2C nicht die gleiche wie seriell
Tobias Blome wrote:
> ist denn I2C nicht die gleiche wie seriell
Ja und nein.
- Bei I2C handelt es sich um eine serielle Schnittstelle
- Bei RS232 / U(S)ART handelt es sich ebenfalls um eine
serielle Schnittstelle
- Wenn jemand pauschal "schick es über die serielle Schnittstelle"
sagt, ist in der Regel die RS232 / U(S)ART gemeint
- Serielle Schnittstelle ist nicht gleich serielle Schnittstelle
(--> es gibt verschiedene Arten von seriellen Schnittstellen)
Gruß,
Magnetus
kann ich denn belibige pin´s für I2C benutzen oder sind das bestimmte? ich habe mit I2C noch nichts gemacht... kann ja nicht so schwer sein oder? Tobias
Wenn du die I2C-Funktionalität per Software nachbildest, ist es ziemlich egal, welche Pins verwendet werden. Wenn du die Hardware-I2C des µCs verwendest, bist du an die dafür vorgesehenen Pins gebunden. Gruß, Magnetus
Ja, beliebige Pins. Du mußt halt genau die Ansteuerung machen, wie sie im Datenblatt des EEproms beschrieben ist.
und was ist besser einfacher von Vorteil? also bei PWM z.B. sollte man immer de Hardware pin´s nehmen weil das über die Software viel speicher benötigt - wie ist das bei I2C? Tobias
Software I2C ist so einfach, daß es sich nicht lohnt, extra einen AVR mit TWI-Schnittstelle zu nehmen (Atmel nennt I2C "TWI").
Also ich hab den Eindruck, du hast dich noch nicht mit dem Datenblatt des Prozessors befasst. Das solltest du schleunigst nachholen, bevor du weiter fragst. Ist natürlich bequemer, DEINE Hausaufgaben von anderen machen zu lassen.
Hallo und vielen Dank erst mal. @Bensch such mal im Datenblatt nach "I2C" du wirst nichts finden, weil du nette Menschen wie Jack benötigst, die dir sagen das Atmel das nicht I2C sondern TWI nennt oder wie wärest du darauf gekommen??? Davon mal abgesehen steht im Datenblatt nicht wirklich wie mal I2C / TWI programmiert! Da gibt es sicher andere/bessere Quellen.
> sondern TWI nennt oder wie wärest du darauf gekommen??? Davon mal > abgesehen steht im Datenblatt nicht wirklich wie mal I2C / TWI > programmiert! Da gibt es sicher andere/bessere Quellen. "AVR315: Using the TWI module as I2C master" http://www.atmel.com/dyn/resources/prod_documents/doc2564.pdf Gruß, Magnetus [Edit] Der Link zum dazugehörigen Sourcecode: http://www.atmel.com/dyn/resources/prod_documents/AVR315.zip [/Edit]
Danke Magnetus, ich habe gerade einen riesen Artikel im Robotterforum gefunden incl. Beispielcodes :-) Jetzt kann es losgehn Tobias
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.