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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.