|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
borzon Član
Pridružen-a: Čet 17 Sep 2015 23:14 Prispevkov: 150 Aktiv.: 1.44 Kraj: Postojna
|
Objavljeno: Pon Avg 24, 2020 2:20 am Naslov sporočila: Kreiranje in klicanje nove funkcije v Void Loop |
|
|
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 |
|
|
ecobra Član
Pridružen-a: Pet 27 Jun 2014 14:16 Prispevkov: 310 Aktiv.: 2.61 Kraj: Radeče
|
Objavljeno: Pon Avg 24, 2020 8:20 am Naslov sporočila: |
|
|
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 |
|
|
mosqito Član
Pridružen-a: Čet 07 Apr 2016 23:22 Prispevkov: 3220 Aktiv.: 33.18
|
|
Nazaj na vrh |
|
|
mato1111 Član
Pridružen-a: Pet 28 Dec 2012 14:42 Prispevkov: 610 Aktiv.: 4.45 Kraj: Vrhnika
|
Objavljeno: Pet Jul 16, 2021 7:34 pm Naslov sporočila: |
|
|
Č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 |
|
|
bostjang Član
Pridružen-a: Tor 03 Jan 2006 15:29 Prispevkov: 3158 Aktiv.: 14.23 Kraj: Postojna
|
Objavljeno: Sob Jul 17, 2021 11:12 am Naslov sporočila: |
|
|
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 |
|
|
mato1111 Član
Pridružen-a: Pet 28 Dec 2012 14:42 Prispevkov: 610 Aktiv.: 4.45 Kraj: Vrhnika
|
Objavljeno: Sob Jul 17, 2021 11:35 am Naslov sporočila: |
|
|
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 |
|
Nazaj na vrh |
|
|
mato1111 Član
Pridružen-a: Pet 28 Dec 2012 14:42 Prispevkov: 610 Aktiv.: 4.45 Kraj: Vrhnika
|
Objavljeno: Sre Jul 28, 2021 8:53 pm Naslov sporočila: |
|
|
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 |
|
|
mosqito Član
Pridružen-a: Čet 07 Apr 2016 23:22 Prispevkov: 3220 Aktiv.: 33.18
|
Objavljeno: Čet Jul 29, 2021 8:28 am Naslov sporočila: |
|
|
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 |
|
|
mato1111 Član
Pridružen-a: Pet 28 Dec 2012 14:42 Prispevkov: 610 Aktiv.: 4.45 Kraj: Vrhnika
|
Objavljeno: Čet Jul 29, 2021 9:57 am Naslov sporočila: |
|
|
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 |
|
|
bostjang Član
Pridružen-a: Tor 03 Jan 2006 15:29 Prispevkov: 3158 Aktiv.: 14.23 Kraj: Postojna
|
Objavljeno: Čet Jul 29, 2021 9:59 am Naslov sporočila: |
|
|
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 |
|
|
mato1111 Član
Pridružen-a: Pet 28 Dec 2012 14:42 Prispevkov: 610 Aktiv.: 4.45 Kraj: Vrhnika
|
Objavljeno: Čet Jul 29, 2021 10:24 am Naslov sporočila: |
|
|
Hvala za razlago ampak kakšen primer bi mi bolj koristil. |
|
Nazaj na vrh |
|
|
mosqito Član
Pridružen-a: Čet 07 Apr 2016 23:22 Prispevkov: 3220 Aktiv.: 33.18
|
Objavljeno: Čet Jul 29, 2021 10:25 am Naslov sporočila: |
|
|
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 |
|
|
|
|
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: 47 dni
Powered by phpBB © 2001, 2005 phpBB Group
|