Re: Problem mit Frequenzgenarator Kategorie: Programmierung C (von Peter W. - 18.07.2007 9:59) | ||
Als Antwort auf Problem mit Frequenzgenarator von Helmut Isele - 8.07.2007 20:53 | ||
| ||
Ich benutze die 32er-Version die ja bekanntlich keinen Timer3 hat, deshalb kann ich dein Programm leider nicht austesten. Was mir aber aufgefallen ist, ist der logische Fehler in deinem Programm! Die case-Anweisung für 1 wird niemals ausgeführt, da der Wert der Variablen nach der Initialisierung und dem anschlie�enden ++ immer mit dem Wert 2 beginnt! Besser ist also: int_akt = 0; Peter > Hallo C-Control- Anwender, > > Ich habe mit dem Frequenzgenerator folgendes Problem : Beim zyklischen Ausgeben > von verschiedenen Frequenzen werden bestimmte Frequenzen "verschluckt". > > Der folgende Programmabschnitt soll 8 verschiedene Frequenzen > zyklisch ausgeben werden, doch leider geschieht das nur nur sporadisch. > Die fehlenden Frequenzen treten nach wiederkehrendem Fehlermustern > auf. > > Das ganze passiert bei Verwendung von Timer 3 wie auch bei Timer 1. > > Kann mir zu diesem Fehlerbild jemand helfen? > > > int_akt = 1; > do > { > int_akt++; > > switch( int_akt ) > { > case 1: > t_fakt=260; //55Hz > break; > case 2: > t_fakt=130; //110Hz > break; > case 3: > t_fakt=65; //220Hz > break; > case 4: > t_fakt=32; //440Hz > break; > case 5: > t_fakt=16; //880Hz > break; > case 6: > t_fakt=8; //1760Hz > break; > case 7: > t_fakt=4; //3520Hz > break; > case 8: > t_fakt=2; //7040Hz > break; > case 9: > t_fakt=1; //14080Hz > break; > } > > if (int_akt==9) > int_akt = 1; > > > Timer_T3Stop(); > AbsDelay(100); > Timer_T3FRQ(t_fakt,PS_1024); > AbsDelay(100); > Timer_T3Start(PS_1024); > AbsDelay(2000); > > } > while (1); > | ||
Antwort schreiben Antworten: |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum