mehrere Werte speichern mit Capture

OP #1626387
Lesenswert?
• ▲
▼
Hallo Leute,

hab gerade ein Projekt am laufen, wo ich gerade über das Tachosignal die 
Drehzahl bestimmen will. Der Mikrokontroller ist ein 80c517a.

Meine Frage an euch:
Wie kann man die Werte von mehreren steigenden Flanken speichern, ohne 
den vorherigen Wert zu überschreiben?

Ich hab gelesen das es mit einem Array funktioniert, aber wie mach ich 
das??
#1626438
Lesenswert?
• ▲
▼
Welchen Wert hat denn deine steigende Flanke?
Flankensteilheit? Zeitpunkt? laufende Nummer?


Drehzahlen würde ich immer so bestimmen:

Gesucht: Flanken pro Zeiteinheit
Lösung: Flanken zählen.
Das Ganze gibt dann den Durchschnittswert für diese Zeiteinheit



Beispiel:
Deine Zeitbasis sind Sekunden (d.h. du willst einmal Pro Sekunde einen 
aktuellen Wert haben)

Also fängst du am Anfang einer Sekunde an, die Impulse zu zählen. Am 
Ende der Sekunde hast du dein Ergebnis, das du weiter verarbeitest 
(bspw. umrechnest). Gleichzeitig muss dein Zähler auf 0 gesetzt werden.
OP #1627915
Lesenswert?
• ▲
▼
Hier ist mein Programm womit ich die steigenden Flanken aufnehmen will,
kann sich jmd. das mal ansehen und mir sagen was falsch sein kann?

        # include <reg517a .h>
  # define NUM_IMP 2
  unsigned long lenImp [ NUM_IMP ];


  main ()
  {
  T2PS = 1; // fosz / 96
  CTCON |= 0 x80 ;
  T2R1 = 0; // disable reload

  CCEN &= 0 xf7 ; // CC1 capture rising edge P1 .1
  CCEN |= 0 x04 ;


  EX4 = 1;   // interrupt on rising edge of P1.1
  EAL = 1;

  T2I1 = 0; // start timer
  T2I0 = 1;

  while (1);
  }


  void compute () interrupt 2  // risinge edge, mit 2 Impulse
   {
  static unsigned char counter = 0;

  lenImp [ counter ] = 8681L / 1000;

  counter ++;
  if ( counter == NUM_IMP )
  EAL = 0;
  }

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.