|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
vilko Član
Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3351 Aktiv.: 15.03 Kraj: Dragomer
|
Objavljeno: Čet Mar 31, 2016 7:41 am Naslov sporočila: Nekaj takega kot $include pri Bascomu, kako je pri Arduinu? |
|
|
Nekaj takega kot $include pri Bascomu, kako je pri Arduinu?
Ko stestiramo nek logično sklop programa, ga potem kličemo samo kot podprogram, nas njegova koda optično ovira, ko delamo na ostalem delu programa. Pa tudi že stestiran del programa lahko pokvarimo.
Pri Bascomu smo tako kodo spravili kot datoteko na disk, jo označili kot 'samo za branje' in jo klicali v programu z neko 'include' komando. Tako je koda postala optično bolj prijazna in manj ranljiva.
Kako to naredim v Arduinu? Taka opcija sigurno obstaja v vseh programskih jezikih in orodjih, samo vedeti je treba kako. _________________ Prepričan sem, da je inteligentnih bitij v vesolju veliko. A ker so inteligenta, se nam nočejo prikazati. |
|
Nazaj na vrh |
|
|
elektronik1982 Član
Pridružen-a: Pet 18 Maj 2012 5:53 Prispevkov: 101 Aktiv.: 0.70 Kraj: Maribor
|
Objavljeno: Čet Mar 31, 2016 9:12 am Naslov sporočila: |
|
|
vilko: Sintaksa v Arduino-u temelji na C/C++ sintaksi. Se pravi:
Koda: |
#include <datoteka.h> |
|
|
Nazaj na vrh |
|
|
vilko Član
Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3351 Aktiv.: 15.03 Kraj: Dragomer
|
Objavljeno: Čet Mar 31, 2016 9:18 am Naslov sporočila: |
|
|
Vedno sem mislil, da to velja za posebno kodo - biblioteke.
Trdiš da tudi za navaden kos programa, ki ga vrinem nekam v sredino moje kode.
Bom takoj probal.
Hvala _________________ Prepričan sem, da je inteligentnih bitij v vesolju veliko. A ker so inteligenta, se nam nočejo prikazati. |
|
Nazaj na vrh |
|
|
elektronik1982 Član
Pridružen-a: Pet 18 Maj 2012 5:53 Prispevkov: 101 Aktiv.: 0.70 Kraj: Maribor
|
Objavljeno: Čet Mar 31, 2016 9:34 am Naslov sporočila: |
|
|
vilko: V C-ju, ko uporabiš #include direktivo, to vrstico preprocesor zamenja z vsebino vključene datoteke. Hkrati je pa lahko ta datoteka vmesnik za dostop do 'knjižnice', ki je že bila prevedena. Takšno knjižnico moraš potem še zlinkati, ampak v Arduino-u tega verjetno ne boš rabil. |
|
Nazaj na vrh |
|
|
vilko Član
Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3351 Aktiv.: 15.03 Kraj: Dragomer
|
Objavljeno: Čet Mar 31, 2016 9:34 am Naslov sporočila: |
|
|
hmmm, tako mi ne gre, morda delam kaj narobe
Citiram: |
#include <pp1.h>
^
compilation terminated.
exit status 1
Napaka pri prevajanju. |
Natipkal sem podprogram:
Koda: |
void pp1() {
// testiram #include pp.h
Serial.println ("Podprogram");
} |
in glavni program za testiranje:
Koda: |
#include <pp1.h>
void setup() {
pp1();
}
|
in dobil gornji rezultat. _________________ Prepričan sem, da je inteligentnih bitij v vesolju veliko. A ker so inteligenta, se nam nočejo prikazati. |
|
Nazaj na vrh |
|
|
elektronik1982 Član
Pridružen-a: Pet 18 Maj 2012 5:53 Prispevkov: 101 Aktiv.: 0.70 Kraj: Maribor
|
Objavljeno: Čet Mar 31, 2016 10:01 am Naslov sporočila: |
|
|
Poskusi takole:
pp1.h
pp1.cpp
Koda: |
#include "pp1.h"
void test(void) {
int i=1+1;
}
|
sketch_xxx.ino
Koda: |
#include "pp1.h"
void setup() {
}
void loop() {
test();
}
|
pp1.h in pp1.cpp shrani v mapo libraries\pp1 in ponovno zaženi Arduino IDE |
|
Nazaj na vrh |
|
|
vilko Član
Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3351 Aktiv.: 15.03 Kraj: Dragomer
|
Objavljeno: Čet Mar 31, 2016 10:08 am Naslov sporočila: |
|
|
elektronik1982 je napisal/a: |
pp1.h in pp1.cpp shrani v mapo libraries\pp1 in ponovno zaženi Arduino IDE |
Mapo libraries smatram za neke vrste sistemsko mapo, kamor aplikacijske zadeve, ki se tičejo nekega projekta, ne pašejo.
az imam rad neko aplikacijo, nek projekt. ves v eni mapi, da jo potem selim kot celoto, ne da mi potem, ko se pojavim s kopijo, podprogrami manjkajo...
Saj ne rečem.če gre za neke vrste univezalni podprogram, potem lahko rečem, da spada v arduino\libraries ... _________________ Prepričan sem, da je inteligentnih bitij v vesolju veliko. A ker so inteligenta, se nam nočejo prikazati. |
|
Nazaj na vrh |
|
|
vilko Član
Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3351 Aktiv.: 15.03 Kraj: Dragomer
|
Objavljeno: Čet Mar 31, 2016 10:18 am Naslov sporočila: |
|
|
Tukaj
http://forum.arduino.cc/index.php?topic=165678.0
reši to z neke vrste tabs, jaz pa nevem, kaj so to tabs. _________________ Prepričan sem, da je inteligentnih bitij v vesolju veliko. A ker so inteligenta, se nam nočejo prikazati. |
|
Nazaj na vrh |
|
|
elektronik1982 Član
Pridružen-a: Pet 18 Maj 2012 5:53 Prispevkov: 101 Aktiv.: 0.70 Kraj: Maribor
|
Objavljeno: Čet Mar 31, 2016 10:22 am Naslov sporočila: |
|
|
Imaš prav, obstaja še enostavnejša rešitev, ki v C-ju ne obstaja. Ko imaš projekt, samo klikneš na desni strani IDE, kjer imaš puščico. Prikaže se ti 'dropdown' menu, v katerem klikneš na New Tab (isto naredi bližnjica: Ctrl + Shift + N). |
|
Nazaj na vrh |
|
|
vilko Član
Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3351 Aktiv.: 15.03 Kraj: Dragomer
|
Objavljeno: Čet Mar 31, 2016 10:51 am Naslov sporočila: |
|
|
ZMAGA!
Kliknil sem, kot si rekel, in odprl nov zavihek, datoteko poimenoval bb in v zavihek dal podprogram:
Koda: |
void bb()
{
Serial.println ("Dober dan");
} |
v vajabajt zavihek sem dal glavni program:
Koda: |
byte urniki[8][24] ;
int i;
void bb();
void setup() {
Serial.begin(9600);
while (!Serial) {}
delay(1);
for (i = 0;i<24;i++) urniki[1][i] = i + 8 ;
for (i = 0;i<24;i++) Serial.println (urniki[1][i],DEC);
bb();
}
void loop() {} |
in ko sem odstranil razne formalne napake je delovalo, dobil sem izpis, kot sem ga hotel. Obe daotoeki sta v mapi vajabajt, tako vajabajt ino kot bb.ino
Hvala za potrpljenje in pomoč... _________________ Prepričan sem, da je inteligentnih bitij v vesolju veliko. A ker so inteligenta, se nam nočejo prikazati. |
|
Nazaj na vrh |
|
|
cimer Član
Pridružen-a: Sob 07 Okt 2006 0:07 Prispevkov: 121 Aktiv.: 0.57 Kraj: Ljubljana
|
Objavljeno: Čet Mar 31, 2016 12:03 pm Naslov sporočila: |
|
|
Pozdrav Vilko,
Moje mišljenje je, da si ti preveč dober programer in ti osnovno Arduino okolje ne nudi vsega kar si do sedaj že uporabljal.
Spet predlagam, da si ogledaš kako drugo IDE okolje, s katerim takih problemov kot zgoraj sploh ne boš imel.
Kakor smo ti že predlagali si poglej Code::Blocks ali pa Visual Studio.
To je samo moje priporočilo glede na pot ki sem jo tudi jaz enkrat prehodil (Bascom --> ArduinoIDE --> Code::Blocks --> Visual Studio). _________________ Lep pozdrav!
Marko S. |
|
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: 75 dni
Powered by phpBB © 2001, 2005 phpBB Group
|