- LiFePO4 Speicher Test         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 13 von 13

Thema: Stopwatch auslesen

  1. #11
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    Anzeige

    Praxistest und DIY Projekte
    Hallo roboman,
    ... dann kommt eine pause von 1,458 sec, nach der die schleife von vorne beginnt!
    ok, habe ich gesehen.
    Du hast damit eine Schleife, die jeweils nach ca. 2,422 s wieder die Stopwatch liest.

    Ok, verstanden!

    Gruß Dirk

  2. #12
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    aber wie kann man diese werte auf dem rp6 speichern?
    Wie lange sollen die Daten gespeichert werden. Bis zum nächsten Ausschalten oder für "ewig". Das erste wäre dann ein gewöhnliches Array:

    Code:
    uint16_t daten[512], n;
    
    n=0;
    daten[n]=getStopwatch1();
    writeInteger(daten[n], DEC);
    Ewig würde es imEEProm gespeichert werden:

    Code:
    #include <avr/eeprom.h>
    
    eeprom_write_word (uint16_t *addr,uint16_t value);
    eeprom_read_word (const uint16_t *addr);
    Wie das genau funktioniert habe ich noch nicht getestet, mit 8bit-Werten mache ich es so:

    Code:
    #include "asuro.h"
    
    void EEPROM_write(unsigned int uiAddress, unsigned char ucData)
    {
      /* Wait for completion of previous write */
      while(EECR & (1<<EEWE))
        ;
      /* Set up address and data registers */
      EEAR = uiAddress;
      EEDR = ucData;
      /* Write logical one to EEMWE */
      EECR |= (1<<EEMWE);
      /* Start eeprom write by setting EEWE */
      EECR |= (1<<EEWE);
    }
    unsigned char EEPROM_read(unsigned int uiAddress)
    {
      /* Wait for completion of previous write */
      while(EECR & (1<<EEWE))
        ;
      /* Set up address register */
      EEAR = uiAddress;
      /* Start eeprom read by writing EERE */
      EECR |= (1<<EERE);
      /* Return data from data register */
      return EEDR;
    }
    int main(void) {
    unsigned i;
    unsigned char c;
    Init();
    /*
    EEPROM_write(509,'m');
    EEPROM_write(510,'i');
    EEPROM_write(511,'c');
    */
    SerWrite("\n\n\rInhalt des EEPROMS\n\r10.3.2007 (code by dalmator)\n\n\r",54);
    for (i=0;i<512;i++) {
    	StatusLED(RED);
    	c=EEPROM_read(i);
    	StatusLED(GREEN);
    	SerWrite(&c,1);
    }
    while (1);
    return 0;
    }
    (Beim zweiten Start den auskommentierten Code nach Init() einmalig auch ausführen!)

    Gruß

    mic
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  3. #13
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.01.2008
    Alter
    30
    Beiträge
    540
    ich habe jetzt ein bisschen getüftelt! wie muss ich den code mit der stopuhr verändern, damit der wert der stopuhr für immer gespeichert bleibt(kann man ihn auch wieder löschen). und wie lade ich ihn dann auf den pc?

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad