Erster Versuch einer Frequenzmessung. Code korrekt?

Gast #1150603
Hallo Zusammen.

Ich möchte mit einem Mega32 die Frequenz eines PWM Signals bestimmen.
Die Interrupt-Ports sind schon alle belegt. Deshalb hab ich das 
PWM-Signal an Port A.0 angeschlossen.
Hier der Code:
1
...
2

3
while (1)
4
      { if(PINA.0==0){ // Wenn das PWM Signal Null ist ....
5
        lock=0;     // PWMSignal war NUll
6
        PORTA.5=0; 
7
        }  
8
        if(PINA.0==1 && lock==0){ // PWM Signal ist Eins und war davor Null ...
9
        TCCR1B=0x02; //Timer1 Starten 
10
        PORTA.5=1;
11
        lock=1;
12
        messure=1; 
13
        } 
14
         
15
        if(PINA.0==1 && messure==1 && lock==0){// PWM Signal ist Eins, war davor Null und die Zeitmessung wurde bei der positev Flanke davor gestartet.
16
        cycle_l=TCNT1L;
17
        cycle_h=TCNT1H;
18
        TCCR1B=0x00; //Timer1 Stoppen
19
        cycle_sum=cycle_h*256+cycle_l;  // Vorläufigs Ergebnis: Schwingungsdauer = Kehrwert der Frequenz
20
        messure=0; 
21
        } 
22

23
      };

Ist das soweit Richtig? Hab das ganze mit dem AVR Studio und so einem 
JTAGICE mkII ausprobiert. Allerding stimmen der Wert nicht(Das 
PWM-Signal hat ca. 300 Hz). Liegt das vielleicht daran das der Code mit 
dem AVR Studio nicht mit der wirklichen Geschwindigkeit abläuft?

Grüßle Tiffi
Gast
... bei 300Hz und einem Timertakt von 500kHz sollte cycle_sum ja 
ungefähr 1670, oder? Aber gemessen kommt eigentlich immer ein beliebiger 
Wert raus ...

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 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.