[python] chyba v kodu
RMiklos na pss.sk
RMiklos na pss.sk
Čtvrtek Květen 3 17:49:14 CEST 2007
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 <radek.machulka na gmail.com>
Sent by: python-bounces na py.cz
03.05.2007 17:22
Please respond to
Konference PyCZ <python na py.cz>
To
python na py.cz
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.
--
Linux khoi 2.6.20-15-386 #2 Sun Apr 15 07:34:00 UTC 2007 i686 GNU/Linux
_______________________________________________
Python mailing list
Python na py.cz
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
Daląí informace o konferenci Python