Hallo,
ich Arbeite in C mit einem Atmega32 mit Atmel Studio6 und will einen
einstellbaren Taktgenerator bauen.
Diesen tue ich über einen Drehimpulsgeber steuern.
Jetzt mein Problem:
Es funktioniert alles einwandfrei, nur jetzt möchte ich gerne die Werte
des Drehimpulsgebers benutzen um einen Pin eine bestimmte Zeit auf High
und Low zu schalten.
1 | ISR( TIMER1_COMPA_vect)
|
2 | {
|
3 | SecTakt++;
|
4 | if(SecTakt >= Frequenz)
|
5 | {
|
6 | SecTakt = 0;
|
7 | }
|
8 | if(Impuls >= SecTakt)
|
9 | {
|
10 | PORTB = PORTB|(1<<LED);
|
11 | }
|
12 | else
|
13 | {
|
14 | PORTB = PORTB &~(1<<LED);
|
15 | }
|
Wenn ich hier die Variabeln Frequenz und Impuls mit eine zahl beschreib
wird dies auch dementsprechen ausgegeben und SecTakt geht bei erreichen
des Frequenzwerts wieder auf Null und beginnt von vorne zu zählen.
Aber wenn Frequenz durch den eingestellten Wert des Drehimpulsgebers
gewählt wird dann zählt SecTakt durchgehend hoch.
Ist irgendwie ein bisschen blöd zu beschreiben das Problem.
Hoffe aber ihr versteht es und könnt mir eventuell helfen.
schon mal Danke ;)