Delay () tartományon kívüli számmal
-
pekolaszlo
- Újonc

- Hozzászólások: 6
- Csatlakozott: 2016. október 2. vasárnap, 21:15
Delay () tartományon kívüli számmal
Had kezdjem egy privát kérdéssel amelyről szeretném ha szólna ez a rész.
Mi történik akkor ha a delay() függvényben
Amelyben maximum 65000 körüli maximum érték írható ,ennél kicsivel vagy sokkal többet
Írunk ???
A gyakorlatban nem igazán tudtam kiértékelni
Mi az igazi válasz erre kérlek segítsetek ebben
Köszönöm
Mi történik akkor ha a delay() függvényben
Amelyben maximum 65000 körüli maximum érték írható ,ennél kicsivel vagy sokkal többet
Írunk ???
A gyakorlatban nem igazán tudtam kiértékelni
Mi az igazi válasz erre kérlek segítsetek ebben
Köszönöm
Re: Kezdők kérdései
olvasd el a téged érdeklő dolgokat plííííz!
delay()
https://www.arduino.cc/en/Reference/Delay
unsigned long
https://www.arduino.cc/en/Reference/UnsignedLong
delay()
https://www.arduino.cc/en/Reference/Delay
Syntax
delay(ms)
Parameters
ms: the number of milliseconds to pause (unsigned long)
unsigned long
https://www.arduino.cc/en/Reference/UnsignedLong
tehát 65535 nél nagyobb értéknél sem lesz probléma, ha nem integer típusú változóval paraméterezedUnsigned long variables are extended size variables for number storage, and store 32 bits (4 bytes). Unlike standard longs unsigned longs won't store negative numbers, making their range from 0 to 4,294,967,295 (2^32 - 1).
-
pekolaszlo
- Újonc

- Hozzászólások: 6
- Csatlakozott: 2016. október 2. vasárnap, 21:15
Re: Kezdők kérdései
Nagyon köszönöm, elnézést az amatörségért
-
pekolaszlo
- Újonc

- Hozzászólások: 6
- Csatlakozott: 2016. október 2. vasárnap, 21:15
Re: Kezdők kérdései
De ha sima számot írok be nem pedig egy
Előre definiált nevet akkor ez hogyan módosul?
A következőképpen néz ki a sorom:
delay(valami*60);
Ahol a valami integer változó és egy analóg bemeneten beolvasott értek amit potméterrel állítok,de az időzítési nem üzemazerűen változik
Hanem hol több hol kevesebb ugyanazon potméter állásnál.
Előre definiált nevet akkor ez hogyan módosul?
A következőképpen néz ki a sorom:
delay(valami*60);
Ahol a valami integer változó és egy analóg bemeneten beolvasott értek amit potméterrel állítok,de az időzítési nem üzemazerűen változik
Hanem hol több hol kevesebb ugyanazon potméter állásnál.
Re: Kezdők kérdései
szerintem próbáld ki!
ha ennyire érdekel a valami, a valami*60, írasd ki a soros monitorra az értéküket
látni fogod, hogy a bejövő jeled mennyire "zajos", hogy ugrál fel-le a szám vége
és a valami tipusdefiniciótól függóen hogyan viselkedik a valami*60
http://arduino.cc/en/Reference/VariableDeclaration
https://www.arduino.cc/en/Reference/Byte
https://www.arduino.cc/en/Reference/Int
https://www.arduino.cc/en/Reference/UnsignedInt
és így tovább az unsigned long-ig
ha ennyire érdekel a valami, a valami*60, írasd ki a soros monitorra az értéküket
látni fogod, hogy a bejövő jeled mennyire "zajos", hogy ugrál fel-le a szám vége
és a valami tipusdefiniciótól függóen hogyan viselkedik a valami*60
http://arduino.cc/en/Reference/VariableDeclaration
https://www.arduino.cc/en/Reference/Byte
https://www.arduino.cc/en/Reference/Int
https://www.arduino.cc/en/Reference/UnsignedInt
és így tovább az unsigned long-ig
Re: Kezdők kérdései
A 0...65535-nél nagyobbat adsz meg, akkor:
1, átemeled 2-es számrendszerbe:
xxxx.xxxx.xxxx.xxxx.yyyy.yyyy.yyyy.yyyy
2, Ebből az alsó 16 jegyet veszed, a felsőt eldobod.
Ennyi lesz a tény számértéke.
1, átemeled 2-es számrendszerbe:
xxxx.xxxx.xxxx.xxxx.yyyy.yyyy.yyyy.yyyy
2, Ebből az alsó 16 jegyet veszed, a felsőt eldobod.
Ennyi lesz a tény számértéke.
http://www.tavir.hu - a gazda 
Re: Delay () tartományon kívüli számmal
Pontosítás: A korai arduinoban 0...65535 volt az értékhatára. Ez változott long-ra.
http://www.tavir.hu - a gazda 
Re: Delay () tartományon kívüli számmal
tehát a valami*60 a valami típusát kapja
ha uint tipusu volt, akkor uint is marad.
viszont az analog input -60 az nem lóghat ki az uint 0-65535-ig terjedő értékkészletéből.
csak ha int nek adnál 0-1023 közötti érték*60 értéket, az már ugrálhat rendesen negatív(-32767)-pozitív(+32768) értékek között.
anno a Pascal volt nagyon rigolyás a típus definíciókra. belénk is verték rendesen, hogy ne legyünk pongyolák e téren.
mit csinál egy ilyen?
integer out of range? type missmatch? lefut?
ha uint tipusu volt, akkor uint is marad.
viszont az analog input -60 az nem lóghat ki az uint 0-65535-ig terjedő értékkészletéből.
csak ha int nek adnál 0-1023 közötti érték*60 értéket, az már ugrálhat rendesen negatív(-32767)-pozitív(+32768) értékek között.
anno a Pascal volt nagyon rigolyás a típus definíciókra. belénk is verték rendesen, hogy ne legyünk pongyolák e téren.
mit csinál egy ilyen?
Kód: Egész kijelölése
int n=-32000;
delay(n); integer out of range? type missmatch? lefut?
-
pekolaszlo
- Újonc

- Hozzászólások: 6
- Csatlakozott: 2016. október 2. vasárnap, 21:15
Re: Delay () tartományon kívüli számmal
Nagyon köszönöm a segítséget igyekszem mihamarabb kipróbálni,és visszajelzek hátha
Érdekel valakit
Érdekel valakit