[SDCC] floaty i problemy.



Masz problem? Zapytaj na forum elektroda.pl

Poprzedni Następny
Wiadomość
Spis treści
From: "Thomek" <niema_at_nospam_niema.op.pl>
Subject: [SDCC] floaty i problemy.
Date: Fri, 9 Apr 2004 18:40:04 +0200


Witam
Zachcialo mi sie uzyc floatow niestety na intach nie potrafie. I co pisze
sobie kodzik normlanie.
float a=0.5*0.5;
unsigned char out = (unsigned char) a;
No i mam w zmiennej "out" zero. Chyba powinno byc 6 nie ?
Zagladam do pliku asm wygenerowanego przez kompilator i nie malo sie
zdziwilem bo tej liniki od floatow to wogole nie ma. Gdzie ona jest ??.
Mysle sobie inaczej z nim pojdziemy.
#include <float.h>

void main()
{
float f;
unsigned char out;
f = __fsmul(2.5, 2.5);
out = __fs2uchar(f);
}

Niby kod sie generuje ale w out nadal zero widze zamiast 6.
Wolam pomocy !!

Pozdrawiam
Thomek



=======

Poprzedni Następny
Wiadomość
Spis treści
From: "feder" <feder_WYTNIJTO__at_nospam_post.pl>
Subject: Re: [SDCC] floaty i problemy.
Date: Fri, 9 Apr 2004 18:54:44 +0200


----- Original Message ----

Poprzedni Następny
Wiadomość
Spis treści
From: "Mister" <wojpie_at_nospam_poczta.onet.pl>
Subject: Re: [SDCC] floaty i problemy.
Date: Fri, 9 Apr 2004 22:52:17 +0200


Niby kod sie generuje ale w out nadal zero widze zamiast 6.
A dlaczego masz widzieć 6 skoro wynik jest mniejszy od 1?

Mister



========
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: "Thomek" <niema_at_nospam_niema.op.pl>
Subject: Re: [SDCC] floaty i problemy.
Date: Sat, 10 Apr 2004 11:39:43 +0200


A dlaczego masz widzieć 6 skoro wynik jest mniejszy od 1?

Mister

Hmm zle napisalem oczywiscie nie powinnio byc tam 0.5 tylko 2.5 tak jak w
drugim przykladzie jest. A dokladnie to mam taki kawalek kodu ktory zawsze
daje mi wartosc 0. A nie powinien bo val zmienia sie od 0-255.

unsigned char val;
unsigned char w_4 = 10, w_9 = 233;
float f;
unsigned char out;

val = ac_read();
delay_ms(200);
lcd_gotoxy(0, 0);
f = __fsdiv(__uchar2fs(w_9 - w_4), __uchar2fs(5));
f = __fsdiv(__uchar2fs(val - w_4), __uchar2fs(f));
out = __fs2uchar(f);
show_bin3(out); // zawsze wyswietla 0 :(

Juz nie wiem co z tym zrobic a najbardziej mnie rozsmiesza zdanie z
dokumentacji SDCC:
Also notice that you don't have to call this routines directly. The compiler
will use them automatically every time a floating point operation is
required.
Tylko jak to ma sie do tego ze jak nie uzywam ich bezposrednio to kod nie
jest generowany ??. Moze trzeba dodac jakaś opcje podczas kompilacji ??

Pozdrawiam
Thomek



========
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: J.F. <jfox_nospam_at_nospam_poczta.onet.pl>
Subject: Re: [SDCC] floaty i problemy.
Date: Sat, 10 Apr 2004 15:21:11 +0200


On Sat, 10 Apr 2004 11:39:43 +0200, Thomek wrote:
unsigned char val;
unsigned char w_4 = 10, w_9 = 233;
float f;
unsigned char out;

val = ac_read();
delay_ms(200);
lcd_gotoxy(0, 0);
f = __fsdiv(__uchar2fs(w_9 - w_4), __uchar2fs(5));
f = __fsdiv(__uchar2fs(val - w_4), __uchar2fs(f));
out = __fs2uchar(f);
show_bin3(out); // zawsze wyswietla 0 :(

Juz nie wiem co z tym zrobic a najbardziej mnie rozsmiesza zdanie z
dokumentacji SDCC:
Also notice that you don't have to call this routines directly. The compiler
will use them automatically every time a floating point operation is
required.
Tylko jak to ma sie do tego ze jak nie uzywam ich bezposrednio to kod nie
jest generowany ??.

Ale co widac na wydruku z assemblera - w ogole tego nie kompiluje ?
Niezbyt wierze..

Moze trzeba dodac jaka? opcje podczas kompilacji ??

Tez mi sie tak wydaje ..

J.


========
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: "Thomek" <niema_at_nospam_niema.op.pl>
Subject: Re: [SDCC] floaty i problemy.
Date: Sat, 10 Apr 2004 16:52:57 +0200


Moze trzeba dodac jaka? opcje podczas kompilacji ??

Tez mi sie tak wydaje ..

J.

Sciagnelem inna wersje SDCC. I o dziwo zaczelo wszystko funkcjonowac ale sam
nie wiem co bylo tego powodem bo program tez sie troche zmienil od
ostatniego czasu. Szkoda ze nie wiem jaka wersja byla poprzednio. Wazne ze
teraz dziala. Taka mala swiateczna magia :).

Pozdrawiam
Thomek



========
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mai