- Akku Tests und Balkonkraftwerk Speicher         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 14 von 14

Thema: Frequenzmessung per ICP

  1. #11
    Benutzer Stammmitglied
    Registriert seit
    16.04.2011
    Beiträge
    78
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Das Signal wurde mit einem Oszilloskop untersucht und ist präzise, hier liegt kaum der gesuchte Fehler vor.
    Ich schreibe mal die ganze Berechnungsroutine in die main() rein, damit kürzt sich die unsigned long- Variable aus der ISR.

    Dann gilt es jetzt die unsigned long Zeit zu analysieren...Was erwartest du da zu sehen? Ich meine, es werden eben größere Sprünge zu sehen sein, doch worauf willst du hinaus?
    Bis 2Khz habe ich es mir eigentlich einfacher vorgestellt mit der Messung...

    MfG,
    Nik

    P.S: mal hypothetisch, was könnten für Fehler an einem TTL-Signal +5V auftreten?

  2. #12
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    36
    Beiträge
    1.225
    Zitat Zitat von Liquidator Beitrag anzeigen
    Das und den 2^16 Fehler verstehe ich leider nicht ganz. Die Differenz wird ihrer Größe wegen in einer unsigned long-Variable gesichert. Wäre es besser wenn ich es in der main() berechne?
    Vergiss den 2^16-Fehler, da lag ich daneben. Danke Stefan, ich hatte die Logik dahinter nicht ganz durchdrungen.

    Was die Subtraktion angeht: Start 0xff00 und Ende 0x00ff entspricht eigentlich einer Zeit von 0x1ff. Wenn du die voneinander subtrahierst bekommst du bei einer 16-Bit-Subtraktion dank abgeschnittener Carry-Bits auch tatsächlich 0x1ff heraus, bei einer 32-Bit-Subtration wäre das Ergebnis aber 0xffff01ff. Lösen lässt sich das Problem, indem du die Subtraktion in Klammern setzt und das Ergebnis auf uint16_t castest.

    Grüße,
    Markus
    Tiny ASURO Library: Thread und sf.net Seite

  3. #13
    Erfahrener Benutzer Roboter Experte Avatar von sternst
    Registriert seit
    07.07.2008
    Beiträge
    672
    Zitat Zitat von markusj Beitrag anzeigen
    Was die Subtraktion angeht: Start 0xff00 und Ende 0x00ff entspricht eigentlich einer Zeit von 0x1ff. Wenn du die voneinander subtrahierst bekommst du bei einer 16-Bit-Subtraktion dank abgeschnittener Carry-Bits auch tatsächlich 0x1ff heraus, bei einer 32-Bit-Subtration wäre das Ergebnis aber 0xffff01ff. Lösen lässt sich das Problem, indem du die Subtraktion in Klammern setzt und das Ergebnis auf uint16_t castest.
    Sorry Markus, aber du liegst wieder daneben.
    Im Prinzip hast du ja Recht mit der 16-Bit-Arithmetik, aber so einfach ist es nur, wenn die Capture-Länge immer unter einer Timer-Periode liegt, man also keine Overflows mitzählen und einrechnen muss. Wenn man aber mitzählt, dann hat man immer bei Start>Ende einen Overflow gezählt, der nicht hinzugerechnet werden darf. Entweder macht man eine zusätzliche Abfrage und korrigiert die gezählten Overflows ggf, oder man beschränkt das Ende-Start eben NICHT auf 16-Bit, dann fällt dieser zusätzliche Overflow nämlich ganz von alleine raus. Nimm doch einfach mal deine eigenen Beispielwerte und rechne damit die Formel im Code komplett aus, und nicht nur teilweise.
    MfG
    Stefan

  4. #14
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    36
    Beiträge
    1.225
    Zitat Zitat von sternst Beitrag anzeigen
    Sorry Markus, aber du liegst wieder daneben.
    Und du hast schon wieder recht, irgendwie war gestern nicht mein Tag ...

    mfG,
    Markus
    Tiny ASURO Library: Thread und sf.net Seite

Seite 2 von 2 ErsteErste 12

Ähnliche Themen

  1. hier ein code für niedrige frequenzmessung mit icp
    Von kolisson im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 10
    Letzter Beitrag: 05.11.2009, 22:23
  2. ICP benutzen ?? (länge von pulsen messen
    Von goara im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 9
    Letzter Beitrag: 30.01.2008, 00:13
  3. AVR - Interner Pullup bei ICP-Betrieb ?
    Von WolleMS im Forum Elektronik
    Antworten: 0
    Letzter Beitrag: 04.05.2007, 15:22
  4. mega168 - ICP vs. Port als Ausgang?!
    Von 0tes_Gesetz im Forum C - Programmierung (GCC u.a.)
    Antworten: 16
    Letzter Beitrag: 02.04.2006, 13:41
  5. 8535 und ICP
    Von wheelchair im Forum C - Programmierung (GCC u.a.)
    Antworten: 6
    Letzter Beitrag: 06.03.2006, 16:04

Berechtigungen

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

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad