|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
damo Član
Pridružen-a: Čet 31 Jul 2003 13:45 Prispevkov: 2008 Aktiv.: 9.01 Kraj: Krško
|
Objavljeno: Čet Dec 28, 2017 2:19 pm Naslov sporočila: Arduino, globalne spremenljivke in "multiple tabs" |
|
|
Ojla,
imam program, ki kliče funkcije v knjižnici.
Funcija, ki jo rabim, je narejena v stilu neskončne zanke in kot taka deluje ok. (vsake 3 sekunde izmeri parametre in jih preračuna). Ker bi jaz med temi 3 sekundami počel še kaj drugega, sem funkcijo skopiral in while zanko "odprl", v svoji glavni funkciji pa skrbim, da jo pokličem vsake 3 sekunde.
Pojavil se mi je problem, da ta originalna zanka rabi spremenljivke iz prejšnje iteracije ter nato izračunava povprečje po nekem algoritmu. Problem sedaj je, da za vsako ko kličem to mojo "one time read" funkcijo, so spremenljivke na novo inicializirane (torej 'arhiv' je prazen).
Nič hudega, sem si rekel. Bom spremenljivke naredil globalne in se bodo ohranile. In tu se mi zatakne. Problem je, ker je projekt v večih datotekah in knjižnicah (1 datoteka .INO, ostale pa so .h in .cpp oz. .c)
Ima kdo recept, kje in kako definirat globalne sprejemljivke, da bodo delovale globalno? Če imaš samo 1 ino datoteko, to ni problem, če pa imaš več datotek (multi tab), pa mi nikakor ne gre, kljub temu da sem naredil po klasičnem receptu.
Imamo kakega "naprednega" Arduino znalca?
Hvala za pomoč! _________________ Dobrga štromarja samo slab šnops strese! |
|
Nazaj na vrh |
|
|
polkic Član
Pridružen-a: Pon 04 Dec 2017 20:27 Prispevkov: 68 Aktiv.: 0.88
|
Objavljeno: Čet Dec 28, 2017 6:45 pm Naslov sporočila: |
|
|
Pozdravljeni,
ali se Vam v Arduino okolju med prevajanjem pojavi kakšno opozorilo (warning)?
Ponavadi je lažje problem iskat/rešit, če lahko vidimo kodo programa.
Lep pozdrav.
Edit: Mislim, da Vam manjka EXTERN deklaracija spremenljivk.
Nazadnje urejal/a polkic Čet Dec 28, 2017 7:01 pm; skupaj popravljeno 1 krat |
|
Nazaj na vrh |
|
|
vpeter Član
Pridružen-a: Pon 11 Jun 2012 16:05 Prispevkov: 337 Aktiv.: 2.34 Kraj: Maribor okolica
|
Objavljeno: Čet Dec 28, 2017 7:00 pm Naslov sporočila: |
|
|
Originalno funkcijo pretvori v dve funkciji: prva inicializira spremenljivke in jo kličeš samo enkrat, druga pa je vsebina zanke. |
|
Nazaj na vrh |
|
|
damo Član
Pridružen-a: Čet 31 Jul 2003 13:45 Prispevkov: 2008 Aktiv.: 9.01 Kraj: Krško
|
Objavljeno: Čet Dec 28, 2017 8:37 pm Naslov sporočila: |
|
|
Se javljam malce kasneje....
Butasta stvar. Skozi sem mislil, da se mi spremenljivka ne "prenaša" in na koncu pogruntal, da sem nehote izključil zakasnitveno zanko.
Torej, meritev se izvede vsake 3 sekunde, vsakih 600 meritev pa se zapiše povprečje v eeprom. Povprečje se mi je zapisovalo vsakih nekaj sekund, števec meritev mi je javljal vedno 601. Po dolgem času sem skapiral, da sem izključil zakasnitev in se mi je v cca 3 sekundah izvedlo 600 meritev. Zadeva je delovala pravilno, le jaz tega nisem videl.
Sem pa našel dobro foro, kako zaradi boljše preglednosti razdrobiti .ino file: narediš več ino datotek, kompajlirale se bodo po abecednem redu. Vse skupaj se obnaša kot da je v enem .ino fajlu, le bolj pregledno je.
Druga varianta je uporaba headerjev in source datotek, tam pa moraš deklarirati spremenljivke, da se "vidijo".
Hvala za pomoč!
p.s. Polkic - ni potrebe za vikanjem, na forumu se vsi tikamo _________________ Dobrga štromarja samo slab šnops strese! |
|
Nazaj na vrh |
|
|
polkic Član
Pridružen-a: Pon 04 Dec 2017 20:27 Prispevkov: 68 Aktiv.: 0.88
|
Objavljeno: Čet Dec 28, 2017 10:02 pm Naslov sporočila: |
|
|
Haha, hvala za nasvet.
Jaz si navadno pomagam:
- kar z dodajanem številk na začetku v imenu datotek in nato definicijo spremenljivk napišem v prvi datoteki. (Hitra rešitev)
Drugače se pa includa željene datoteke(.h), če obstajajo v novem tabu in nato spremenljivke dodatno externo declarira.
Lp. |
|
Nazaj na vrh |
|
|
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 68 dni
Powered by phpBB © 2001, 2005 phpBB Group
|