Hallo Leute ich habe einen Fehler in meinem Code. ich will die Variable aufloesung mit dem TCNT1 multiplizieren und das ergebnis in die Variable winkel schreiben, aber irgendwie funktioniert dies nicht. Kurz zu meinem Programmaufbau damit ihr euch schneller zurechtfindet: Switch Case Anfang Menü --Einstellungen ---Switch Case Auflösung Anfang ----verschiedene Winkel ----verschiedene Winkel ----verschiedene Winkel ----verschiedene Winkel ---Switch Case Auflösung Ende --Winkelauswertung ---> Problem Switch Case Ende Menü Das Menü Funktioniert soweit Prima jedoch bekomme ich bei der ausgabe des Winkels nichts raus! vielen Dank im Vorraus gruß
Eine etwas detailiertere Fehlerbeschreibung wäre nicht schlecht, "funzt nicht" ist immer Problem 42. Aber lass raten: Es kommt immer 0 raus, oder? Was fällt dir an folgenden Zeilen auf? >uint16_t aufloesung; >... >aufloesung = 0.72; >... >winkel = TCNT1 * aufloesung; Oliver
und was kann ich dagegen machen? einen anderen Variablentyp nehmen? bin neuling im C
Christian schrieb: > und was kann ich dagegen machen? einen anderen Variablentyp nehmen? > > bin neuling im C Festkommaarithmetik
>> und was kann ich dagegen machen? einen anderen Variablentyp nehmen? >> >> bin neuling im C >Festkommaarithmetik oder den Datentyp float verwenden. Oliver
Oliver schrieb: >>> und was kann ich dagegen machen? einen anderen Variablentyp nehmen? >>> >>> bin neuling im C >>Festkommaarithmetik > > oder den Datentyp float verwenden. -#include <avr/io.h> -Drehgeber.c -TCNT1 klingt alles nach einem µC (ATmega), da sollte man floats umgehen. Außerdem steht die Problematik ja im Artikel Festkommaarithmetik.
Vielen Dank euch beiden... habs mit dem Festkomma... gelöst und es Funktioniert. Dankeschön
Hallo habe noch 2 Probleme, wenn ich mit dem Drehgeber die werte einlese geht das nur bis ca. 640 dann springt er wieder auf 0 zurück denke dass die Variable dann voll ist aber wenn ich die änder ist es immernoch. Das 2. Problem ist wenn die winkelmessung aktiv ist und in der 2. Zeile Grad stehen sollte steht aber Gradche weil vorher schon Striche drinstand wie bekomme ich das weg. gruß
Dein Problem ist in Codezeile 42. Sagt zumindest meine Glaskugel > Das 2. Problem ist wenn die winkelmessung aktiv ist und in > der 2. Zeile Grad stehen sollte steht aber Gradche weil > vorher schon Striche drinstand wie bekomme ich das weg. Einfach "Grad " ausgeben. Was du nicht mit Leerzeichen überschriebst, bleibt stehen.
>wenn ich mit dem Drehgeber die werte einlese geht das nur bis ca. 640 >dann springt er wieder auf 0 zurück denke dass die Variable dann voll >ist So ist es. Bei 655 ist bei einem uint16_t in Festkommaarithmetik mit zwei Stellen hinterm Komma Schluß. Entweder brauchst du einen uint32_t, oder doch einen float. Oliver
Hallo danke euch 2 es Funktioniert jedoch bin ich auf ein kleines Rätsel gestoßen warum ist das Grad und die Zahl fast in der mitte des Displays obwohl ich mit dem befehl set_cursor (0,2) sage in der 2.zeile am anfang schreiben...
Auch hier wieder: Das Problem liegt in Zeile 42. (Ist das wirklich so schwer: Wenn du ein Problem in deinem Code hast, das du nicht verstehst, dann poste den Code! Hier auf dieser Seite des Bildschirms kann keiner wissen, was du programmiert hast. Und nein. Der Code von weiter oben gilt nicht mehr. Den hast du schon verändert, Der ist nicht mehr ident zu deinem Programm, wie es jetzt ist)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.