Autor |
Zpráva |
guchar
|
Napsal: stř 02.08.2017 10:33 |
|
Mazák
|
|
Registrován: 7.5.2015 Příspěvky: 7413 Bydliště: ČR Obrázky: 8
|
Arduino Pow(er), není matematika. Tedy je, ale "dirkovaná (0,1)" "Arduino" je jeden z programovací jazyků. Dle odkazu vst. proměnné "float" a výst. je typu "double" (což je nejasné) a nejspíš" double"="float" Neb Arduino je založeno na "Céčku" a tam pro Datové typy (druhy proměnných) platí "Data types: char is 8 bits, int is 16 bits, long is 32 bits, long long is 64 bits, float and double are 32 bits (this is the only supported floating point format), pointers are 16 bits Tak jako Tabulkový procesor(Excel)si umí typy potřebně převádět, mohl by to umět i Arduino. Nejlíp vyzkoušet. pow(base, exponent) Je ale možné, že to tak obecně neplatí a různé Arduino verze X.Y to mohou mít jinak. V jednom českém manuálu je příklad se vstupy "int", "int" a výstupem "float" 1 //ukazka pouziti 2 3 int a = 10; 4 int b = 3; 5 float c; 6 7 void setup() { 8 Serial.begin(9600); 9 } 10 11 void loop() { 12 c = pow(a,b); 13 Serial.println(c); 14 delay(1000); 15 } CELÝ MANUÁL K PŘÍKLADU Language Reference, Arduino programJiný anglický manuál matematickou funkci mocnění pow(a,b) nemá zařazenu. V mat. jen max(x,y) a min(x,y) Arduino manual==edit02 V ČEŠTINĚ PRŮVODCE SVĚTEM ARDUINA
|
|
Nahoru |
|
|
|
|
|
Grugh
|
Napsal: stř 02.08.2017 10:40 |
|
Mazák
|
|
Registrován: 24.11.2013 Příspěvky: 627 Bydliště: Praha 10, ČR Obrázky: 9
|
Celeron píše: ... Ale ten druhej co jsi upravoval po Zelkarovi nevychází. Máš tam chybu, exponent v POW má být zápornej, pak to vychází stejně jako Zelkarovi. ...
Chyba tam není, ověřil jsem si to . Ten exponent má být skutečně kladný, protože došlo k inverzi vnitřku té mocniny. Neměl jsi v tom excelu vzorec zadaný např. jako P0 = P / pow(1 + ...; 5.257)? Potom by to znaménko nesedělo.
|
|
Nahoru |
|
|
Grugh
|
Napsal: stř 02.08.2017 11:07 |
|
Mazák
|
|
Registrován: 24.11.2013 Příspěvky: 627 Bydliště: Praha 10, ČR Obrázky: 9
|
Celeron píše: Chlapi matematický, pomocí pow(x,y) se mocní x na y a oboje může být float. Pomocí pow(x, 1/y) jde odmocňovat. Není u toho nějaký omezení třeba u některých datových typů? V excelu to chodí ale co v arduiňákoj? A ještě, musí být x a y stejný datový typ, tedy třeba float, float, nebo jdou i kombinace třeba int,long a pod? Díky Obecně s céčkem se to má tak: Dejme tomu, že existuje funkce např.: double pow(float a, float b), tj. vstupní parametry a,b jsou typu float, výsledek je double. https://www.arduino.cc/en/Reference/PowPotom když jí zavolám příkazem: int c = pow(1, 2); kde jsem všude použil inty, tak dojde k automatickému přetypování z intu na float a u výsledku naopak z double na int. Tedy pokud je konverze známá a v tomto případě by to neměl být problém. Konverze je primitivní, nečekejte nějaké zaokrouhlování. To se provede spec. funkcí nebo trikem: int c = pow(a, b) + 0.5; Snad Arduino používá standardní C a ne nějaký vlastní metajazyk. Explicitní přetypování: https://www.arduino.cc/en/Reference/Castedit --------- Beru zpět. Arduino používá modernější objektový jazyk, asi něco na způsob c++. Jinými slovy: všechno je podobné, maximálně ještě snazší.
|
|
Nahoru |
|
|
Amper
|
Napsal: stř 02.08.2017 11:33 |
|
Mazák
|
|
Registrován: 30.8.2011 Příspěvky: 5331 Bydliště: Plzeň, CZ Obrázky: 0
|
osobne wiring nepovazuju za jazyk ale specializovany preprocessor. Jazyk je bezne C/C++ kompilovane GCC pro ARM. Wiring nadstavba dela jen odlehci otravnym vecem ala nastaveni kompilatoru, linkeru a predpripravi/zavola setup/loop
_________________ coptery@FrSky X9E, 3.4m Go-3,EPP Spartan,SkySurfX8,SE.5,MPX Extra 300s@Jeti DC-16
|
|
Nahoru |
|
|
Celeron
|
Napsal: stř 02.08.2017 15:19 |
|
Mazák
|
|
|
Registrován: 22.4.2010 Příspěvky: 10493 Bydliště: Nový Bydžov ČR Obrázky: 14
|
Grugh píše: Chyba tam není, ověřil jsem si to . Ten exponent má být skutečně kladný, protože došlo k inverzi vnitřku té mocniny. Neměl jsi v tom excelu vzorec zadaný např. jako P0 = P / pow(1 + ...; 5.257)? Potom by to znaménko nesedělo. Ne, / to není, ale blbec jsem zapsal do Excelu P0 = P * pow(1 - 0.0065 * Z / (273.15 + t); 5.257) Zvláštní, že to spravil zápornej exponent. Cesty matematiky jsou nevyzpytatelný. Omlouvám se, že jsem Tě podezříval. Díky Jirka
|
|
Nahoru |
|
|
Celeron
|
Napsal: úte 15.08.2017 19:04 |
|
Mazák
|
|
|
Registrován: 22.4.2010 Příspěvky: 10493 Bydliště: Nový Bydžov ČR Obrázky: 14
|
Tak vejškoměr, kterej má autokalibraci na naše a dalších možných 15 letišť je hotovej. Udělal bych finál desku, ale modul pro micro SDHC kartu je skoro o půlku větší než vlastní Arduino Pro mini. Ta deska SDHC je jen jednostraná a navíc je tam zcela zbytečnej stabec 3V3. Neviděl jste někdo na netu nějakou pidi SDHC s SPI? Díky Jirka
|
|
Nahoru |
|
|
Kdo je online |
Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 21 návštevníků |
|
Nemůžete zakládat nová témata v tomto fóru Nemůžete odpovídat v tomto fóru Nemůžete upravovat své příspěvky v tomto fóru Nemůžete mazat své příspěvky v tomto fóru Nemůžete přikládat soubory v tomto fóru
|
|
|