-         

Ergebnis 1 bis 8 von 8

Thema: Datalogger, Ereignis erwischen

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    10.05.2006
    Beiträge
    24

    Datalogger, Ereignis erwischen

    Anzeige

    Hallo,

    mein Datalogger besteht u. a. aus einem EEPROM und einer RTC PCF8583.
    Mit meinem Datalogger messe ich mehrere Temperaturen usw. in dem ständig in einem Loop die Ports abgefragt werden. Die Zykluszeit beträgt mehr als eine Sekunde. Daten möchte ich alle 15 min. abspeichern. Also Minuten 0, 15, 30, 45 und jeweils Sekunden = 0. Nun ist aber meine Zykluszeit größer 1 Sekunde, sodaß ich nicht immer das Ereignis bei 0 Sekunden treffe. Was kann ich machen, damit ich immer wenn das Minutenereignis eintrifft auch die Sekunden bei 0 zum Schreiben erwische? Interrupts? Ich weiß bloß nicht, wie das genau geht oder Signal vom RTC mit zus. Eingang? Achso mein PIC ist ein 16F876.

    Danke für jeden Tipp

    LazyBee

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    29.05.2005
    Ort
    Rott am Inn
    Alter
    29
    Beiträge
    373
    hallo
    wenn es das Auslesen von deinem Temperatursensor nicht stört würde
    ich mit einem interrupt arbeiten.
    dazu müsstest du eigentlich hier im Vorum unter Suchen einiges finden.

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.12.2005
    Ort
    Euskirchen-Großbüllesheim
    Alter
    67
    Beiträge
    2.063
    Hallo LazyBee,
    Du kannst einen Timer auf 1 ms initialisieren und den Timer-Interrupt enablen. In der Interrupt-Routine kannst Du dann weitere Zähler setzen:
    10ms - 100ms - 1s - 60s - .....
    Ein Beispiel dazu findest Du unter: http://www.domnick-elektronik.de/picasm.htm
    MfG Karl-Heinz
    HobbyElektronik hier klicken ....

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    10.05.2006
    Beiträge
    24
    Hallo Kalledom,

    Du kannst einen Timer auf 1 ms initialisieren und den Timer-Interrupt enablen. In der Interrupt-Routine kannst Du dann weitere Zähler setzen:
    10ms - 100ms - 1s - 60s - .....
    Das geht nur bedingt, da ich ja die Uhrzeit auch abspeichern will und da sollte dann im Speicher auch z, B. 21:15:00, 21:30:00 usw. stehen (natürlich ohne ":"). Der Timer wird ja nicht synchton mit der RTC laufen oder doch?

    mfg.
    LazyBee

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    17.08.2004
    Beiträge
    1.065
    mh wieviele und was für Sensoren hast du denn? und hat die RTC vielleicht eine Alarmfunktion? wenn ja, könntest du die RTC auf dieses Zeitfenster stellen und dann den Alarm abwarten. der würde nen interrupt aktivieren.
    aber ich versteh nicht ganz, wie du das mit dem loop meinst.
    Du fragst die Sensoren einmal in 15min ab? oder fragst du sie ständig ab, speicherst die messwerte aber nur alle 15min?

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    10.05.2006
    Beiträge
    24
    Hallo the_Ghost666,

    ich habe das Problemchen folgendermaßen gelöst:

    Ich habe eine Schelife gebildet, die die nur den RTC abfragt. Alle 10 Sekunden wird dann in die Meßwerterfassung gesprungen, die dann etwas mehr als 2 Sekunden dauert. Danach werden die Werte auf dem Display aktualisiert. Reicht für meine Belange.

    Die RTC hat eine Alarmfunktion. Ich habe mich damit allerdings noch nicht im Detail beschäftigt.

    Trotzdem danke für das Interesse.

    LazyBee

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.12.2005
    Ort
    Euskirchen-Großbüllesheim
    Alter
    67
    Beiträge
    2.063
    Hallo LazyBee,
    Du kannst mit dem Timer bzw. den Zähl-Variablen bis 60 Sekunden zählen und liest dann die Uhrzeit aus der RTC. Dann setzt Du alle Zeit-Zähler wieder auf 0 und wartest wieder auf die nächste 60.
    Du kannst auch bis 59 Sekunden zählen, liest dann in Intervallen die RTC ein, bis ein Wechsel zur nächsten Minute erfolgt (die letzte Minuten-Zahl mußt Du natürlich immer speichern). Dann bist Du ziemlich synchron zur Uhr.
    Wenn die RTC Sekunden hat, kannst Du immer auf die nächsten 00 Sekunden warten und setzt dann alle Zeit-Variablen auf Null.
    MfG Karl-Heinz
    HobbyElektronik hier klicken ....

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    17.08.2004
    Beiträge
    1.065
    noch eine frage nebenbei, was sind das für Sensoren und wie viele, dass du zum erfassen mehr als 2 sekunden brauchst? für geringen stromverbrauch kannst du auch den PIC schlafen legen und erst am messzeitpunkt anfangen zu messen, indem dich der interrupt des Watchdog , eines Timers oder der RTC aus dem schlaf reißt. Und ist es denn so wichtig, dass du immer zur "nullsekunde"misst? Ich meine nur, dass es doch auch ok sein sollte, wenn du zu irgendeinem zeitpunkt misst, solange die intervalle dazwischen gleich sind. Dann ist dein erster zeitpunkt hatl nicht 0,0 sondern 0,2. Aber bei der auswertung könnte man einfach sein "koordinatensystem" passend legen, alles ist relativ

Berechtigungen

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