Ein Neuling schrieb:
> Läuft mit Timer 1 16 Bit CTC Prescaler 8 auf 20ms.
Bei mir läuft dieser Code nirgends. Du kannst einfach genaus die
Sourcedatei anhängen, die den Fehler zeigt und dann noch sagen, auf
welcher Plattform mit welchem compiler du das Problem beobachtest (ich
weiß schon: man könnte sich das auch erraten, aber ich bin da grade zu
faul dazu...).
> Als Wert für OCR1B kann doch eigentlich nur ein positiver Wert angezeigt
> werden. Als Wert für OCR1B kann doch eigentlich nur ein positiver Wert
> angezeigt werden.
Warum? Wo soll der gezeigte Code OCR1B nach unten begrenzen?
> Bekomme aber Werte von -400 bis +2870. ...
> Positver Winkel von -410?
Wie kommst du da auf -410, wenn nur Werte von -400 bis ... angezeigt
werden?
BTW: das ist schon irgendwie planlos:
1 | if(OCR1B < 3999);
|
2 | {
|
3 | OCR1B = OCR1B + 10;
|
4 | }
|
5 |
|
6 | if(OCR1B>=2870)
|
7 | {
|
8 | OCR1B = 2870;
|
9 | }
|
Ein Neuling schrieb:
> Werte von -400 bis +2870.
> Möchte auch den Wert in Grad von 0 bis 180° anzeigen lassen.
Stichwort "lineare Interpolation": wenn ein wert von -400 einem Winkel
von 0° entspricht und +2870 einem Winkel von 180°, welcher Winkel
entspricht dann einem wert von 1190?
Ein Tipp: es wird einfacher, wenn du erst mal die Baustelle mit den -400
aufräumst.