Hallo zusammen,
mich ärgert hier gerade eine For-Schleife ... Eigentlich dachte ich,
ich wüsste inzwischen, wie man damit umgeht, aber offenbar doch nicht.
Also, mein Programm sieht im Prinzip folgendermaßen aus:
1 | PORTC &= (1<<PC0); // Initialisierung (am Programmstart)
|
2 |
|
3 | unsigned int i;
|
4 |
|
5 | for(i = 0; i < 8192; i++)
|
6 | {
|
7 | PORTC |= (1<<PCO);
|
8 |
|
9 | if(i == 0)
|
10 | [.. mach was ..]
|
11 | if(i == 2048)
|
12 | [.. mach was anderes ..]
|
13 |
|
14 | PORTC &= ~(1<<PC0);
|
15 | }
|
(Im Anhang das vollständige Programm, die For-Schleife findet sich in
der Routine DirectReadout.)
Eigentlich müsste man doch davon ausgehen können, dass die Routine
exakt 8192-mal ausgeführt wird, oder ? Hänge ich aber einen
Frequenzzähler an PC0, kann ich genau 8191 positive Flanken messen -
also eine weniger !
Bin langsam echt am Durchdrehen hier ...
Grüße, Mario