60 nap alatt Arduino #16 - LCD-ből óra

A "60 nap alatt Arduino" tanfolyam házi feladatai és közvetlen témái
zoldfulurozi
Újonc
Újonc
Hozzászólások: 9
Csatlakozott: 2018. június 13. szerda, 11:44

Re: 60 nap alatt Arduino #16 - LCD-ből óra

HozzászólásSzerző: zoldfulurozi » 2018. július 21. szombat, 11:02

Köszönöm, akkor ha az if után nincs kapcsos zárójel , akkor úgy működik, hogy ha logikai vizsgálat igaznak bizonyúl akkor végrehajtja a parancsot, ha pedig nem igaz, akkor egyszerűen megy tovább???

atilla
Biztosítékgyilkos
Hozzászólások: 55
Csatlakozott: 2016. május 10. kedd, 18:35

Re: 60 nap alatt Arduino #16 - LCD-ből óra

HozzászólásSzerző: atilla » 2018. július 21. szombat, 11:44

Idézet:
"Az If utasítás segítségével ellenőrizhetünk 1-1 feltételt, azaz hogy a feltétel teljesül-e;
például egy analóg bemenőjel értéke meghalad-e egy szintet. Ha a feltétel teljesül,
akkor a feltételt követő kapcsos-zárójelben levő utasítások végrehajtódnak; ha pedig
nem, akkor kihagyásra kerülnek."

zoldfulurozi
Újonc
Újonc
Hozzászólások: 9
Csatlakozott: 2018. június 13. szerda, 11:44

Re: 60 nap alatt Arduino #16 - LCD-ből óra

HozzászólásSzerző: zoldfulurozi » 2018. július 21. szombat, 13:43

Nagyon köszönöm a választ , el voltam tévedve, azt gondoltam addig vár, amíg nem teljesül a feltétel.
Nagyon köszönöm a segítséget, a fórum és a levelek is nagyon sokat segítenek.
Észre vettem egy számomra érdekes dolgot. A Time library letöltése után a példa progit futtatva siet a lapom. 1000 mili-ként 0,932 milit. ( A referencia telefonhoz képest, ami a mobil szolgáltatótól pontosit). Ugyanezt a programot egy Mblock ME Aurigán ( Arduino mega 2560 ) futtatva durván 11 óra alatt késik 7 másodpercet.… Azt gondoltam, hogy egy ennyire ismert , használt lib csak is jól, pontosan működhet. Úgy tűnik a másolat, clone –lapokon mégsem olyan pontos.
Elsőre azt gondoltam volna, hogy az UNO-n csak is késhet, ha még egy LCD-t is hozzá illesztek, de nem siet..
Próbálkozom , hátha sikerül a Time. cpp file-ban elcsalnom egy kis időt.
time_t now() {
// calculate number of seconds passed since last call to now()
while (millis() - prevMillis >= 1000) {
// millis() and prevMillis are both unsigned ints thus the subtraction will always be the absolute value of the difference
sysTime++;
prevMillis += 1000;// itt próbálom állítani, hátha.
#ifdef TIME_DRIFT_INFO
sysUnsyncedTime++; // this can be compared to the synced time to measure long term drift
#endif

atilla
Biztosítékgyilkos
Hozzászólások: 55
Csatlakozott: 2016. május 10. kedd, 18:35

Re: 60 nap alatt Arduino #16 - LCD-ből óra

HozzászólásSzerző: atilla » 2018. július 21. szombat, 16:21

Millis használatával nem lesz pontos az órád. A 0-ás timer 64-es előosztón megy ilyenkor. Az 250000, ha jól jár a 16 MHz-es rezonátorod.
A 250000-et a timer 256-tal osztja. Ez 976,5625 Hz, és nem 1000. Tehát ennyi pontatlanság van benne. Ezt a blink villogónál nem veszed észre, de egy óránál igen.
Állítsad be a 16 bites timert 1 Hz-re, és azzal időzítsél.

zoldfulurozi
Újonc
Újonc
Hozzászólások: 9
Csatlakozott: 2018. június 13. szerda, 11:44

Re: 60 nap alatt Arduino #16 - LCD-ből óra

HozzászólásSzerző: zoldfulurozi » 2018. július 21. szombat, 16:34

Köszönöm a válaszod, arra rájöttem közben, hogy nem érdemes bele nyúlni a file-ba, mert különben folyton összeomlik.
Amit leírtál sajnos egyelőre nekem nagyon magas, de köszönöm. Azt hiszem ez olyan izgalmas téma, amire időről időre vissza fogok térni :-)

Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3234
Csatlakozott: 2008. augusztus 29. péntek, 6:00
Tartózkodási hely: Újkígyós

Re: 60 nap alatt Arduino #16 - LCD-ből óra

HozzászólásSzerző: kapu48 » 2018. július 22. vasárnap, 12:00

if...else:
https://www.arduino.cc/reference/en/language/structure/control-structure/if/

Ha nem használsz kapcsos zárójeleket, akkor csak a következő 1 utasításra vonatkozik a feltételes végrehajtás.

Kód: Egész kijelölése

Mind a 3 formátumnak egyforma az eredménye.
if (x > 120) digitalWrite(LEDpin, HIGH);

if (x > 120)
digitalWrite(LEDpin, HIGH);

if (x > 120){ digitalWrite(LEDpin, HIGH); }


Ha több utasítást alkalmazol a feltétel vizsgálatban?
Akko csoportba kel zárni őket:

Kód: Egész kijelölése

if (x > 120){
  digitalWrite(LEDpin1, HIGH);
  digitalWrite(LEDpin2, HIGH);
}                                 // all are correct


Avatar
csegebiga
Chipgyilok
Hozzászólások: 284
Csatlakozott: 2015. március 27. péntek, 21:27

Re: 60 nap alatt Arduino #16 - LCD-ből óra

HozzászólásSzerző: csegebiga » 2018. július 23. hétfő, 6:49

Hülyeséget írtam nem tudom törölni.

zoldfulurozi
Újonc
Újonc
Hozzászólások: 9
Csatlakozott: 2018. június 13. szerda, 11:44

Re: 60 nap alatt Arduino #16 - LCD-ből óra

HozzászólásSzerző: zoldfulurozi » 2018. július 24. kedd, 18:47

Isteni , jó, hogy egy csomó dologra segítőkész válaszokat kaphatok. Köszönöm szépen.


Vissza: “60 nap alatt Arduino - Házi feladatok”

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 vendég