mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Frequenzmessung mit (Absdelay) ungenau?


Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,
ich habe zur Frequenzmessung das Bespielprogram bei c-control verwendet.
Damit misst er auch im KHZ Bereich relativ genau.
Sobald ich aber meine vereinfachte Version anwende wieso funktioniert 
meine Version nicht?
Wie funktioniert den die Version von C-control in groben Zügen?

Gruß
Alex


word ct1;                                      // globale 
Variabledeklaration
word FRQ_Mode, FRQ_Wert;                        // globale 
Variabledeklaration
word FRQ_Wertr;

void main (void)
{
LCD_Init( );

   label:

    FRQ_Mode=1;                             // keine Frequenzmessung 
durchführen
    Irq_SetVect(INT_TIM2COMP,FRQ_Messung);  // Interrupt Service Routine 
definieren
    FRQ_Mode=0;                             // Messung starten
    ct1=0;
    while (FRQ_Mode==0);                    // warten bis Messung 
beendet

     LCD_CursorPos (0x00);                       //Cursor Position 
1.Zeile
     LCD_WriteWord (FRQ_Wert,0x05);
     LCD_CursorOff();

     goto label;

}

void FRQ_Messung(void)
{

    int i;                               // Variabledeklaration

    if (FRQ_Mode==0)
    {
        if (ct1==0)
        {
         Timer_T1CNT();
        }
        if (ct1>=100)
        {
            FRQ_Wert=Timer_T1GetCNT();          // Messwert übergeben
            FRQ_Mode=1;                         // Messung beendet
        }
    }
    ct1++;                                     // Zähler um eins erhöhen
    Irq_GetCount(INT_TIM2COMP);             // Interrupt Request Counter
}

Meine Version:

{
LCD_Init( );

label:

Timer_T1CNT ();
AbsDelay(2000);
FRQ_Wert = Timer_T1GetCNT( );
FRQ_Wertr = FRQ_Wert /2;
LCD_Locate(1,1 );
LCD_WriteWord(FRQ_Wertr,0x05 );

goto label ;
}

: Verschoben durch User

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.