- 3D-Druck Einstieg und Tipps         
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 28

Thema: Speichern auf SD Karte oder USB Stift?

  1. #11
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Anzeige

    E-Bike
    Zitat Zitat von Kampi
    Der "komplizierte" Teil zum beschreiben einer SD-Karte um sie am PC auswerten zu können ist ja nur das AVR-DOS. Aber wenn man damit nichts großartiges machen will ist das beschreiben der Karten auch ziemlich einfach.....vorrausgesetzt man hat einen passenden Controller dafür
    So etwas... http://www.dosonchip.com/ ..?

    Gruß Richard

  2. #12
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    26.03.2006
    Beiträge
    361
    @jaecko

    Danke für die Infos. Ich werde mir einen ST24C EEprom besorgen. Ich habe bisher nur Erfahrungen mit dem internen Eeprom vom Mega128. Ganz leihenhaft habe ich hier einfach immer so gespeichert:

    writeeeprom , variable1 , 10
    writeeeprom , variable2 , 20

    Über die Grösse meiner zu speichernden Daten musste ich mir bisher nie sorgen machen drum habe ich die Speicheradresse immer in 10er Schritten erhöht. Wäre aber mal höchste Zeit zu wissen, welche Variablen mir wieviel Speicher belegen.


    Wäre toll wenn mir da jemand mal weiter helfen könnte.

  3. #13
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    34
    Beiträge
    3.501
    Blog-Einträge
    9
    Es hängt von der Variable ab wie groß die sind. Eine Zelle im EEPROM kann eine Zahl bis zu 255, oder FF, Bit aufnehmen.
    Eine Variable als Bit ist nur 0 und 1 also 1 Bit dementsprechend. Ein Byte hingegen geht bis 255.
    Das heißt in 1 Zelle passt 1 Byte.
    Wenn du nun ein Integer hast, welcher aus 65536 Bit besteht, brauchst du 2 Byte (256 x 256). Darauf musst du beim auslesen achten. Wenn du einen Integer von 400 abspeicherst, speichert der Controller in die eine Zelle FF und den Rest von 145 dann in eine zweite Zelle. Dementsprechend musst du auch diese beiden Zellen auslesen und die Zahl zusammenflicken.
    Hoffe das ist verständlich und schlüssig

  4. #14
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    26.03.2006
    Beiträge
    361
    Danke für die tolle Erklärung. Wie sieht das bei Strings aus? In meinem Fall werde ich wohl Strings die eine Länge von 20 Zeichen haben speichern. Wie sieht es da mit der Speicheraufteilung aus?

  5. #15
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    42
    Beiträge
    2.009
    Naja die Grösse der Variablen weisst du ja durch deren Deklaration.
    Byte = 1 Byte
    Word = 2 Byte
    String = Anzahl Zeichen + 1
    etc.

    Zum Abspeichern auf das ext. EEPROM musst du die Variablen sowieso in einzelne Bytes zerlegen und die dann senden.
    z.B.
    byteLow = word AND &HFF
    byteHigh = word / 256
    Beim Laden entsprechend wieder zusammenbauen.
    word = byteHigh * 256
    word = word + byteLow

    In C könnte man einfach ne Struct mit allen nötigen Variablen anlegen und dann nen Byte-Zeiger drüberschieben. Ob das in Bascom geht, wüsst ich jetzt nicht genau. So extrem hab ich Bascom nie betrieben.
    #ifndef MfG
    #define MfG

  6. #16
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    26.03.2006
    Beiträge
    361
    Hab ich das richtig verstanden, dass man nur bei den grösseren Eeproms das ganze zerlegen muss? Habe das hier gelesen:

    http://www.rn-wissen.de/index.php/Bascom_und_I2C_EEprom

    Beim 24C16 ist das also nicht nötig, oder? Wie adressiere ich dieses Eeprom richtig? Habe gesehen da gibts A0,A1,A2
    Durch mein Platinenlayout habe ich die Adressierung schon vorgegeben. A0 ist bei mir auf +5V, A1 und A2 auf GND. Welche Adresse habe ich dann? Kann mir die Adressierung mit einem DS1307 in die Quere kommen? Fragen über Fragen...

  7. #17
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    34
    Beiträge
    3.501
    Blog-Einträge
    9
    Die EEPROMs haben eine feste Grundadresse. Diese steht im Datenblatt. Dazu kommt dann noch die Adresse durch die Pins und 1 Bit wenn du lesen willst oder eine 0 wenn du schreiben willst.
    Normal dürfte das EEPROM nicht mit der RTC in Kontakt kommen von der Adresse her. Und wenn doch änderst du einfach einen Adresspin.
    Und die Zahl musst du bei jedem EEPROM zerlegen, weil in ein EEPROM nur eine Zahl reinpasst und wenn die Zahl dann größer als 255 ist passt die nicht in eine Zelle.

  8. #18
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    26.03.2006
    Beiträge
    361
    Wie speichere ich dann einen String mir 20 Zeichen ab? Wäre sehr dankbar für einige Zeilen Code damit ich das verstehe. hab gehofft das geht so einfach wie mit dem internen Eeprom der Atmels.

  9. #19
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    34
    Beiträge
    3.501
    Blog-Einträge
    9
    Das geht auch so einfach wie das interne EEPROM beschreiben, außer das vor dem eigentlichen Schreibvorgang die I2C Routine kommt.

  10. #20
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    26.03.2006
    Beiträge
    361
    Ich habe aber mit dem internen Eeprom ohne irgendwas zerlegen zu müssen immer lange Strings abgespeichert. Ich hab dann einfach (nachdem ich noch nicht wusste wieviel Speicher das belegt Platz gelassen bei der Speicheradresse)

    Beispiel:

    writeeeprom "abcdefghijklmnopq" , 20
    writeeeprom "123456789101112" , 50

    Das sollte dann auch beim I2C Eeprom so klappen oder? Wieviel Speicher ein String verbraucht weiss ich ja jetzt schon dank der Erklärung oben

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress