hallo. ich verwende einen 90S8535 und den CodevisionAVR. Ich will einen FLOAT Wert auf dem Display(4x16) ausgeben. Es funktioniert nicht. Der Compiler bringt immer eine Fehlermeldung. Was kann ich da tun??? float p1; unsigned int ad_wert; while (1) { // Place your code here ad_wert = read_adc(0); p1 = 0,92215533 * ad_wert + 143,3427762; sprintf(text,"%f",p1); lcd_gotoxy(0,0); lcd_puts(text); }; }
Da Du die Fehlermeldung nicht angibst, nur eine Vermutung. Dezimalzeichen ist idR ein Punkt und kein Komma: p1 = 0.92215533 * ad_wert + 143.3427762; Ausserde hast Du ad_wert als unsigned int deklariert, daher würde ich schreiben: p1 = 0.92215533 * (float) ad_wert + 143.3427762; um ad_wert explizit in float umzurechnen. (Ich kenne allerdings weder dDeinen Compiler noch AVRs) Andreas
Hallo, ich bin zwar kein c profi aber ich glaub da fehlt ein char text[64]; steht halt so in den lcd beispielen von codevision mfg Thomas
float zahlen gibt man doch x=0.1515f; an vielleicht kann man f weglassen hab das aber noch nicht ausprobiert
hallo, da fehlt die #include <stdio.h> und char text[16]; und es ist so, das man bei floatzahlen 9.1453 schreiben muss, anstatt 9,1453, denn sonst nimmt der compiler nur die 9 und schneidet die kommastellen ab. grüsse
@Kamil müsst das nicht char text[64] sein sind ja 16 x 4 zeichen als 64 zeichen Mfg Thomas
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.