- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 10 von 11

Thema: Tacho-Signal Erfassung

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #10
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    37
    Beiträge
    1.225
    Hallo Andreas,

    Mal vorne angefangen. Arrays in C werden von 0 bis Größe-1 indiziert, du verwendest 1-Größe (und zerballerst damit 4 Bytes nach deinem Array, in denen andere Variablen liegen). Dann fehlt dir eine Synchronisation zwischen Hauptschleife und ISR. Volatile garantiert dir nicht, dass im Hauptprogramm TachoTime atomar ausgelesen wird!

    Vorschläge:
    1. Arrayzugriffe korrigieren
    2. Die Neuberechnung der TachoTime kannst du ruhig auch in der Hauptschleife machen, wenn du den Code in der ISR halten möchtest, solltest du die Zwischenergebnisse in einer lokalen Variable halten und erst am Ende nach TachoTime schreiben. Grund: Volatile sagt dem Compiler, dass er IMMER aus der im SRAM liegenden Variable lesen bzw. JEDE Änderung direkt dorthin zurückschreiben muss. Es würde also jede deiner Zuweisungen einmal in den SRAM geschrieben, obwohl es wesentlich effektiver wäre, die Zwischenergebnisse in den Registern zu nutzen.
    3. Locking: Lies in der Hauptschleife TachoTime (oder die Rohdaten falls du die Berechnung aus der ISR rausnimmst) in lokale Puffervariablen und schalte während des Lesevorganges Interrupts aus. Um das zu vereinfachen gibt es in util/atomic.h den ATOMIC_BLOCK, es sollte aber auch reichen, den Kopiervorgang in die lokale Variable mit cli() bzw. sei() zu umgeben.

    mfG
    Markus

    EDIT: Zu 1: Informatiker am Bahnhof - 0, 1, 2 ... wo ist mein dritter Koffer?
    Geändert von markusj (12.08.2011 um 10:27 Uhr) Grund: Informatiker am Bahnhof ...

Ähnliche Themen

  1. IR-Sensor Erfassung mit Servo
    Von JeyBee im Forum Sensoren / Sensorik
    Antworten: 1
    Letzter Beitrag: 28.10.2008, 16:29
  2. optische Erfassung der Sonne
    Von duc750 im Forum Sensoren / Sensorik
    Antworten: 24
    Letzter Beitrag: 23.01.2007, 21:22
  3. Drehzahl erfassung
    Von ceekay im Forum AVR Hardwarethemen
    Antworten: 1
    Letzter Beitrag: 16.09.2005, 21:16
  4. Tacho Signal beim A3932 von Allegro
    Von demir im Forum Elektronik
    Antworten: 2
    Letzter Beitrag: 01.02.2005, 12:21
  5. Erfassung Pulslänge mir RN-Mega8
    Von Hellmut im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 9
    Letzter Beitrag: 31.10.2004, 19:37

Berechtigungen

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

LiFePO4 Speicher Test