Ked si spustis priklad, ktory som ti prave zaslal vidis, ze dava spravne vysledky:
-5.0 0 0x0 -4.9 656 0x290 -4.8 1311 0x51f -4.7 1967 0x7af .... -0.3 30802 0x7852 -0.2 31457 0x7ae1 -0.1 32113 0x7d71 -0.0 32768 0x8000 +0.1 33423 0x828f +0.2 34079 0x851f +0.3 34734 0x87ae +4.6 62914 0xf5c2 +4.7 63569 0xf851 +4.8 64225 0xfae1 +4.9 64880 0xfd70 +5.0 65535 0xffff Takze v com vidis problem? Radek Machulka <[EMAIL PROTECTED]> Sent by: [EMAIL PROTECTED] 03.05.2007 18:00 Please respond to Konference PyCZ <[email protected]> To Konference PyCZ <[email protected]> cc Subject Re: [python] chyba v kodu Dne čtvrtek 03 května 2007 [EMAIL PROTECTED] napsal(a): > Mozno ze vysledok je iny ako ocakavas preto, lebo Python deli cele cisla > celociselne > > from math import * > def f(inp): > print ((inp + 5) / 10) > print (((inp + 5) / 10) * 65535) > print int(ceil(((inp + 5) / 10) * 65535)) > return hex(int(ceil(((inp + 5) / 10) * 65535))) > > potom > print f(-3) > dava toto > 0 > 0 > 0x0 > > ale > print f(-3.0) > dava toto: > 0.2 > 13107.0 > 13107 > 0x3333 > > > > > Radek Machulka <[EMAIL PROTECTED]> > Sent by: [EMAIL PROTECTED] > 03.05.2007 17:22 > Please respond to > Konference PyCZ <[email protected]> > > > To > [email protected] > cc > > Subject > [python] chyba v kodu > > > > > > > Zdravim, > mam D/A prevodnik pracujici v rozsahu +-5V. Rizeni probiha prostrednictvim > > serioveho portu. Vlastni nastaveni napeti se provadi odeslanim > hexadecimalniho cisla na prevodnik tak, ze: > 0x0000 --> -5 V > 0x8000 --> 0 V > 0xFFFF --> 5 V, > mezi tim je zavislost linearni. > Vymyslel jsem kod: > 'hex(int(ceil(((inp + 5) / 10) * 65535)))'. > Pracuje jak ma, jen v intervalu cca (-5 ; -4.735) mi to vraci nesmysly. > Nemam zdani cim by to mohlo byt, implementace stejnehoi kodu v jinych > jazycich > funguje spravne. > Predem dik za odpovedi > Radek > > P.S.: 'inp' je vstupni promena funkce provadejici prepocet (pozadovane > napeti) > a je typu float. Tak tim to nebude, typy jsem samozrejme zkousel vselijak prohazet a vysledek je stale stejny. Me proste jen prekvapuje, ze tato chyba se vyskytuje jen v teto casti intervalu. Problem bude nekde v praci s datovymi typy, to ano, ale asi nekde jinde... -- Linux khoi 2.6.20-15-386 #2 Sun Apr 15 07:34:00 UTC 2007 i686 GNU/Linux _______________________________________________ Python mailing list [email protected] http://www.py.cz/mailman/listinfo/python Mgr. Ing. Roman MIKLÓŠ Prvá stavebná sporiteľňa a.s. Bajkalská 30, P. O. Box 48 829 48 Bratislava 25 Tel.: +421/ 2 / 582 31 174 Fax: +421/ 2 / 582 31 109 _______________________________________________ Python mailing list [email protected] http://www.py.cz/mailman/listinfo/python
