Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > 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); > >