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 

Nekaj takega kot $include pri Bascomu, kako je pri Arduinu?

 
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
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3351
Aktiv.: 15.04
Kraj: Dragomer

PrispevekObjavljeno: Čet Mar 31, 2016 7:41 am    Naslov sporočila:  Nekaj takega kot $include pri Bascomu, kako je pri Arduinu? Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
elektronik1982
Član
Član



Pridružen-a: Pet 18 Maj 2012 5:53
Prispevkov: 101
Aktiv.: 0.70
Kraj: Maribor

PrispevekObjavljeno: Čet Mar 31, 2016 9:12 am    Naslov sporočila:   Odgovori s citatom

vilko: Sintaksa v Arduino-u temelji na C/C++ sintaksi. Se pravi:
Koda:
#include <datoteka.h>
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3351
Aktiv.: 15.04
Kraj: Dragomer

PrispevekObjavljeno: Čet Mar 31, 2016 9:18 am    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
elektronik1982
Član
Član



Pridružen-a: Pet 18 Maj 2012 5:53
Prispevkov: 101
Aktiv.: 0.70
Kraj: Maribor

PrispevekObjavljeno: Čet Mar 31, 2016 9:34 am    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3351
Aktiv.: 15.04
Kraj: Dragomer

PrispevekObjavljeno: Čet Mar 31, 2016 9:34 am    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
elektronik1982
Član
Član



Pridružen-a: Pet 18 Maj 2012 5:53
Prispevkov: 101
Aktiv.: 0.70
Kraj: Maribor

PrispevekObjavljeno: Čet Mar 31, 2016 10:01 am    Naslov sporočila:   Odgovori s citatom

Poskusi takole:

pp1.h
Koda:
void test(void);


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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3351
Aktiv.: 15.04
Kraj: Dragomer

PrispevekObjavljeno: Čet Mar 31, 2016 10:08 am    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3351
Aktiv.: 15.04
Kraj: Dragomer

PrispevekObjavljeno: Čet Mar 31, 2016 10:18 am    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
elektronik1982
Član
Član



Pridružen-a: Pet 18 Maj 2012 5:53
Prispevkov: 101
Aktiv.: 0.70
Kraj: Maribor

PrispevekObjavljeno: Čet Mar 31, 2016 10:22 am    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3351
Aktiv.: 15.04
Kraj: Dragomer

PrispevekObjavljeno: Čet Mar 31, 2016 10:51 am    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
cimer
Član
Član



Pridružen-a: Sob 07 Okt 2006 0:07
Prispevkov: 121
Aktiv.: 0.57
Kraj: Ljubljana

PrispevekObjavljeno: Čet Mar 31, 2016 12:03 pm    Naslov sporočila:   Odgovori s citatom

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
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: 70 dni


Powered by phpBB © 2001, 2005 phpBB Group