- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 9 von 9

Thema: Werte speichern und später über RS232 auslesen?

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    94
    Beiträge
    627

    Werte speichern und später über RS232 auslesen?

    Anzeige

    E-Bike
    Hallo,
    ich habe 2 Variablen die ich im Minutentakt speichern möchte, und später über RS232 auslesen möchte. (alles per Knopfdruck senden)

    Wie und worin wird soetwas gespeichert? (deswegen wusste ich auch nicht, wonach ich suchen sollte)
    woher weiss man wie groß ein Wert ist und wieviele Werte dann in den Speicher passen?

    Ich habe einen ATMega8:
    8k Flash
    0,5k eeprom
    1024b sram

    angedacht sind 2 Zahlen mit xx,x jede Minute über mindestens 2 Std -> also 240 Werte...

    Tobias

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    53
    Beiträge
    765
    Der Mega32 schafft es gerade so.

    Code:
    
    $regfile = "m32def.DAT"
    $crystal = 8000000
    $hwstack = 32                                               ' default use 32 for the hardware stack
    
    $swstack = 10                                               ' default use 10 for the SW stack
    
    $framesize = 40
    
    $baud = 19200
    
    
    Config Timer1 = Timer, Prescale = 256
    On Timer1 Timer_irq
    Const Timervorgabe = 34286
    
    Dim Wert1(240) As Single
    Dim Wert2(240) As Single
    Dim Wert1org As Single
    Dim Wert2org As Single
    
    Dim Zaehler As Integer
    Dim A As Integer
    
    
    Config Portc.0 = Input
    
    Sendebefehl Alias Portc.0
    
    Portc = 1                                                   'Pullup aktiviert. falls nicht
    
    Zaehler = 1
    
    Declare Sub Senden()
    
    Enable Timer1
    Enable Interrupts
    
    
    
    Do
    
    If Sendebefehl = 0 Then Call Senden                         'dann If Sendebefehl = 1 Then Call Senden
    
    Loop
    
    
    
    Timer_irq:
      Timer1 = Timervorgabe
      Wert1(zaehler) = Wert1org
      Wert2(zaehler) = Wert2org
      Zaehler = Zaehler + 1
    Return
    
    Sub Senden()
    
    A = 0
    
    Weiter:
       A = A + 1
       Print Wert1(a)
       Print Wert2(a)
       If A < Zaehler Then Goto Weiter
    
    Zaehler = 0
    
    End Sub
    Oder halt externes RAM nutzen.

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    22.11.2005
    Ort
    Braunschweig
    Alter
    48
    Beiträge
    685
    Beim Mega8 könnte man entweder das Eeprom nehmen (512 Bytes), oder falls das nicht reicht, evtl ein kleines serielles EEProm extern anschließen, da hat man dann Platz ohne Ende.... naja, aber immerhin ein paar Kilobytes....
    MfG
    Volker
    Meine kleine Seite
    http://home.arcor.de/volker.klaffehn
    http://vklaffehn.funpic.de/cms
    neuer Avatar, meine geheime Identität

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.10.2004
    Ort
    Baoding
    Alter
    44
    Beiträge
    689
    Wenn man die Werte auf Ganzzahl umrechnen kann erspart man dem Controller Arbeit und bekommt sie noch im SRAM unter (240 Werte mal 2 Byte)

    Wenn es unbedingt Single-Werte sein müssen dann nimm wie vklaffehn sagte nen I2C-EEprom wie den 24C512, der kosten um die 3€ hat 64kB, behält die Werte auch bei Spannungsausfall und ist 100000 mal beschreibbar.

    MfG

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    29.01.2005
    Alter
    52
    Beiträge
    294
    Stimme Rofo88 zu.
    Das Gegenteil von "gut" ist "gut gemeint"!

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    94
    Beiträge
    627
    Hallo,
    vielen Dank für die vielen schnelen Antworten

    Also mit dem I2C EEprom klingt toll dann kann ich gaaanz lange messen


    Dann muss ich mich nur noch schlau machen wie ich etwas über I2C sende - ich habe mit I2C auch noch nichts gemach

    Tobias

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    94
    Beiträge
    627
    Also ich habe nun ein IC mit der Bezeichnung 24C512N
    das kann ich wohl genauso ansteuern wie das 24C256 im RN-Wissen Bereich - oder?! Weiß jemand eine Adresse w steht, wie ich das IC anschließen muss? Also brauche ich noch Kondensatoren, Widerstände...? oder einfach SCL auf SCL und SDA auf SDA, plus und Minus fertig?

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    53
    Beiträge
    765
    2 Pullups für SCL und SDA. Etwa 4,7kOhm

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    94
    Beiträge
    627
    gut - dann werd ich mal löten...

Berechtigungen

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

12V Akku bauen