Stránka 1 z 6

Pomoc se výkladem kodu

Napsal: 20 lis 2018, 11:41
od daton
Zdravím všechny
potřeboval bych pomoc s výkladem tohoth řádku kodu
jedná se o toto
progress = progress > 100 ? 100 : progress;
progress který je větší než 100 se zapíše do progres ale... nerozumím co je ten otazník a potom progres za :

diky

Re: Pomoc se výkladem kodu

Napsal: 20 lis 2018, 13:12
od fulda
to je klasická variant na téma: máte rohlíky? tak deset chlebů

znamená to:

to za rovnítkem je výraz, následujícího významu:
pokud je progress > 100 (?), potom přiřaď 100, jinak (:) přiřaď progress

a tento výraz je přiřazen do proměné progress

takže je to omezení na maximálně 100 do progressu

Re: Pomoc se výkladem kodu

Napsal: 20 lis 2018, 14:54
od gilhad

Re: Pomoc se výkladem kodu

Napsal: 20 lis 2018, 15:19
od daton
Ahaaaaa super díky za objasnění :-)

Re: Pomoc se výkladem kodu

Napsal: 20 lis 2018, 19:27
od Vladimir66
nejak to nechapu..

prvni podminka je jasna. kdyz je progress vetsi nez 100, tak zustane 100.
ale pokud neni vetsi nez 100, proc se přiřazuje znovu do progress, kdyz uz v nem ta hodnota je ?
neprodluzuje to delku strojoveho kodu ?
muze se napsat progress = progress > 100 ? 100 a vynechat tu dvojtecku a druhé přiřazení ?

-V66

Re: Pomoc se výkladem kodu

Napsal: 20 lis 2018, 20:01
od fulda
to záleží na překladači a hlavně optimalizaci, ale snad i ty nejzákladnější nepřiřazují do sebe.
Bez toho třetího to nejde, to by nebyl ternární výraz :)

Ale dalo by se to zapsat:
if progress>100 {progress = 100}

Re: Pomoc se výkladem kodu

Napsal: 21 lis 2018, 15:19
od daton
Mám zde další věc s čím bych potřeboval pomoci má kod

Kód: Vybrat vše

#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
  #include <avr/power.h>
#endif

#define PIN 6

// Parameter 1 = number of pixels in strip
// Parameter 2 = Arduino pin number (most are valid)
// Parameter 3 = pixel type flags, add together as needed:
//   NEO_KHZ800  800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
//   NEO_KHZ400  400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
//   NEO_GRB     Pixels are wired for GRB bitstream (most NeoPixel products)
//   NEO_RGB     Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
//   NEO_RGBW    Pixels are wired for RGBW bitstream (NeoPixel RGBW products)
Adafruit_NeoPixel strip = Adafruit_NeoPixel(60, PIN, NEO_GRB + NEO_KHZ800);

// IMPORTANT: To reduce NeoPixel burnout risk, add 1000 uF capacitor across
// pixel power leads, add 300 - 500 Ohm resistor on first pixel's data input
// and minimize distance between Arduino and first pixel.  Avoid connecting
// on a live circuit...if you must, connect GND first.

void setup() {
  // This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket
  #if defined (__AVR_ATtiny85__)
    if (F_CPU == 16000000) clock_prescale_set(clock_div_1);
  #endif
  // End of trinket special code


  strip.begin();
  strip.show(); // Initialize all pixels to 'off'
}

void loop() {
 
  colorWipe(strip.Color(125, 0, 0), 4); // Red
  delay (300);
   colorWipe(strip.Color(0, 25, 0), 4); // Green
  delay(500);
  
} 
// Fill the dots one after the other with a color
void colorWipe(uint32_t c, uint8_t wait) {
  for(uint16_t i=0; i<strip.numPixels(); i++) {
    strip.setPixelColor(i, c);
    strip.show();
    delay(wait);
  }
}
Na před před posledním řádku je výraz delay(wait); a s tím wait to neznám a není mi ani jasné jak system pozná kolik milisekund se má zastavit. Klasický delay s milisekundami je jasný, zde jsem hledal proměnnou wait ale nenašel jsem ji repektive je deklarovaná ale není k ní přiřazena hodnota, jaký to má pak význam??? Děkuji za info.

Re: Pomoc se výkladem kodu

Napsal: 21 lis 2018, 15:59
od Dex
wait je přece proměnná, která se předává té funkci colorWipe jako druhý parametr ;)

Re: Pomoc se výkladem kodu

Napsal: 21 lis 2018, 18:11
od daton
No ja ale nevim kde to číslo vznikne. ???

Re: Pomoc se výkladem kodu

Napsal: 21 lis 2018, 19:55
od pgerla
co bylo dřív programátor nebo slepice?
Kde by WAIT asi vznikal?

Jak napsal DEX, je to druhý parametr co příjme funkce colorWipe( první, druhý)

druhý je v příkladu číslice 4

kde se vyskytla 4? Asi byl autor muslim a má 4 ženy.