www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Kreiranje in klicanje nove funkcije v Void Loop

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Arduino sekcija
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
borzon
Član
Član



Pridružen-a: Čet 17 Sep 2015 23:14
Prispevkov: 150
Aktiv.: 2.05
Kraj: Postojna

PrispevekObjavljeno: Pon Avg 24, 2020 2:20 am    Naslov sporočila:  Kreiranje in klicanje nove funkcije v Void Loop Odgovori s citatom

Pozdravljeni,

Naprošam vas za pomoč pri neznanju programiranja arduinota:
Ker se sam mučim že 2 uri in mi stvar nikakor ne uspe se za pomoč obračam na vas.

Ker se mi enaki ukazi ponavljajo dostikrat v kodi v Void loop (void) bi rad kreirel novo funkcijo z imenom npr. Soba:
Ko bi kasneje klical to funkcijo Soba, bi se morala izveski neka koda.
npr.
Koda:

digitalWrite(crp_zgoraj, LOW);
    digitalWrite(crp_spodaj, LOW);
strcpy(crp_B_status, "Obratuje");
    strcpy(crp_Z_status, "Obratuje");
    strcpy(crp_S_status, ne_obratuje);


Zanima me, kako naj kreiram to funkcijo in kako naj jo potem v samem Void Loop (void) kličem, da bo delovalo pravilno. Zanima me tudi, ali je vazno kje se funkcija nahaja? Ali je pred Void Loop (void) ali je lahko zadaj ....

hvala za pomoč
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
ecobra
Član
Član



Pridružen-a: Pet 27 Jun 2014 14:16
Prispevkov: 262
Aktiv.: 2.97
Kraj: Radeče

PrispevekObjavljeno: Pon Avg 24, 2020 8:20 am    Naslov sporočila:   Odgovori s citatom

Pomagaj si s tem :
Forum arduino

Funkcije


l.p.

_________________
Luna sije, pa ne greje.
Piška pije, pa ne šči...
Uzdaj se use i svoje kljuse.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mosqito
Član
Član



Pridružen-a: Čet 07 Apr 2016 23:22
Prispevkov: 1302
Aktiv.: 19.60

PrispevekObjavljeno: Pon Avg 24, 2020 10:39 am    Naslov sporočila:   Odgovori s citatom

http://scidrom.sc-nm.si/2020/03/31/mala-sola-c-001/
http://scidrom.sc-nm.si/2020/04/06/mala-sola-c-002/
http://scidrom.sc-nm.si/2020/05/09/mala-sola-c-003/

_________________
Always going the extra mile.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mato1111
Član
Član



Pridružen-a: Pet 28 Dec 2012 14:42
Prispevkov: 570
Aktiv.: 5.36
Kraj: Vrhnika

PrispevekObjavljeno: Pet Jul 16, 2021 7:34 pm    Naslov sporočila:   Odgovori s citatom

Če je mogoče bi si rad poenostavil zadeve in namesto večih funkcij z praktično enako nalogo naredil eno "univerzalno".

Najprej pojasnilo kako imam narejeno sedaj:
imam 2 funkciji Urnik1 in Urnik2. Vsaka bere podatke iz svoje strukture torej Urnik1_struct in Urnik2_struct. Funkcija sprejme sistemski čas, vrača pa številko izhoda ki se mora aktivirati.
Strukturi Urnik1_struct in Urnik2_struct vsebujeta parametre kot so začetek vklopa (ura, minuta), dan vklopa, kateri izhodi se vklapljajo in dolžina vklopa.
Funkciji sta prakticno identični razen za razliko imena strukture torej Urnik1_struct in Urnik2_struct. Vsaka funkcija vsebuje tudi 2 statični lokalni spremenljivki.

V prihodnosti imam namen dodati še kakšen urnik in me zanima če je kaksna možnost da se naredi neka "univerzalna" funkcija?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
bostjang
Član
Član



Pridružen-a: Tor 03 Jan 2006 15:29
Prispevkov: 2298
Aktiv.: 12.01
Kraj: Postojna

PrispevekObjavljeno: Sob Jul 17, 2021 11:12 am    Naslov sporočila:   Odgovori s citatom

https://www.w3schools.in/c-tutorial/functions/

mato1111, take zadeve se rešuje s kazalcem na ustrezno strukturo podatkov. Najbolje, da bi tisti statični spremenljivki bili v isti strukturi.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mato1111
Član
Član



Pridružen-a: Pet 28 Dec 2012 14:42
Prispevkov: 570
Aktiv.: 5.36
Kraj: Vrhnika

PrispevekObjavljeno: Sob Jul 17, 2021 11:35 am    Naslov sporočila:   Odgovori s citatom

Ja to z kazalci na strukturo sem že ugotovil me je pa zmedlo to z statičnimi spremenljivkami... najbolje da jih dam res kar zraven v vsako strukturo.
hvala za idejo bom probal Dancing
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mato1111
Član
Član



Pridružen-a: Pet 28 Dec 2012 14:42
Prispevkov: 570
Aktiv.: 5.36
Kraj: Vrhnika

PrispevekObjavljeno: Sre Jul 28, 2021 8:53 pm    Naslov sporočila:   Odgovori s citatom

Zdravo imam dve taki strukturi ki imata naslednje elemente:
Koda:
const char a[3];
const char b[2][5];
const char c[7][5];
const char d[8][4];
const char e[8][5];


Vsebino teh char array-ev mi je uspelo določit ampak zadeva zaseda RAM (cca 2x120 bajtov).
Zadevo bi rad bral iz flasha da ne zasedam RAM-a
Za navaden 1D char array vem da se naredi takole:
Koda:
const char abc[] PROGMEM ="Flash string";

Kako pa se zadeva kombinira z 2D arrayi in strukturo?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mosqito
Član
Član



Pridružen-a: Čet 07 Apr 2016 23:22
Prispevkov: 1302
Aktiv.: 19.60

PrispevekObjavljeno: Čet Jul 29, 2021 8:28 am    Naslov sporočila:   Odgovori s citatom

Tale PROGMEM je verjetno neka arduino interna deklaracija.

Poskusi takole:

Koda:
const char b[2][5] PROGMEM = {{1,2,3,4,5},{6,7,8,9,10}};

_________________
Always going the extra mile.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mato1111
Član
Član



Pridružen-a: Pet 28 Dec 2012 14:42
Prispevkov: 570
Aktiv.: 5.36
Kraj: Vrhnika

PrispevekObjavljeno: Čet Jul 29, 2021 9:57 am    Naslov sporočila:   Odgovori s citatom

Ja tako je. Ni pa samo za arduino tudi avr-libc ima to za AVR mikrokrmilnike.
Kako pa se lahko to uporabi znotraj strukture?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
bostjang
Član
Član



Pridružen-a: Tor 03 Jan 2006 15:29
Prispevkov: 2298
Aktiv.: 12.01
Kraj: Postojna

PrispevekObjavljeno: Čet Jul 29, 2021 9:59 am    Naslov sporočila:   Odgovori s citatom

Znotraj strukture?? Cela struktura mora biti skupaj (v istem pomnilniku). Druga zgodba je, če so v strukturi kazalci na vrednosti, ki so čisto drugje.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mato1111
Član
Član



Pridružen-a: Pet 28 Dec 2012 14:42
Prispevkov: 570
Aktiv.: 5.36
Kraj: Vrhnika

PrispevekObjavljeno: Čet Jul 29, 2021 10:24 am    Naslov sporočila:   Odgovori s citatom

Hvala za razlago ampak kakšen primer bi mi bolj koristil.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mosqito
Član
Član



Pridružen-a: Čet 07 Apr 2016 23:22
Prispevkov: 1302
Aktiv.: 19.60

PrispevekObjavljeno: Čet Jul 29, 2021 10:25 am    Naslov sporočila:   Odgovori s citatom

En primer na brzino... Ne vem, če dela (zapisal "na suho"). Preveri v arduino prevajalniku.

Koda:
struct MojStruct_t         // tule deklariraš struct
{
  char str[2][5];
  uint8_t a;
};

// Tole je v flash-u, struct je zelo uporaben, ko imaš array struktur
const MojStruct_t MojaStruktura_PROGMEM_Array[] PROGMEM =
{
  { {"str1","Str2"}, 1},
  { {"str3","Str4"}, 2},
};

// brez arraya
const MojStruct_t MojaStruktura_PROGMEM_Single PROGMEM =
{
  {"str1","Str2"}, 1
};

// tole bo seveda v RAM-u
MojStruct_t MojaStruktura_RAM;



_________________
Always going the extra mile.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Arduino sekcija Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
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: 39 dni


Powered by phpBB © 2001, 2005 phpBB Group