M2K schrieb:
> warum bist du dir so sicher, dass irgendwo ne Konvertierung nach signed
> stattfindet?
Wegen dieser Symptome
> oder ca eine halbe Sekunde an ist.
und dem Programmteil
1 | PORTB |= (1<<0);
|
2 | while ((Endwert - Startwert ) < (Timerwert + 10 ) )
|
3 | {
|
4 | Endwert = TCNT1;
|
5 | }
|
6 | PORTB &= ~(1<<0);
|
die passen nicht zusammen.
Entweder ist es wirklich ein Hardwareproblem und der µC resettet (kann
aber eigentlich auch nicht sein, denn bei einem Reset würde PORTB
gelöscht werden und damit die LED ausgehen) oder da wird tatsächlich das
Ende des Intervalls 'übersehen'. Ich bin mir noch nicht im Klaren
inwieweit da jetzt die Addition von + 10 in die signed / unsigned
Prolematik mit hineinspielt. Aber eigentlich müsste das Ergebnis von
unsigned + signed ein unsigned Wert sein.
Überlaufen kann die Addition auch nicht, denn Timerwert kann maximal
1224 gross sein.
Schaden kanns nicht, die 10 mal zu 10U zu machen
while ((Endwert - Startwert ) < (Timerwert + 10U ) )
auch wenn ich da jetzt keine großen Hoffnungen darin setze.