VAŽNO! Ovdje pročitajte kako se registrirati na forum. Bez registracije, nećete biti u mogućnosti pisati na forumu.
Programski jezik "C"
- hrvoje.penavin#9776
- Novak
- Postovi: 11
- Pridružen/a: ned tra 15, 2018 2:59 pm
- Lokacija: Sisak
- Kontakt:
- david.zovko#9626
- e-radionica.com team
- Postovi: 436
- Pridružen/a: ned tra 15, 2018 2:59 pm
- Lokacija: Osijek, Croatia
- Kontakt:
Re: Programski jezik "C"
Arduino je napisan u C i C++. U svojim kodovima možete koristiti oba. Gotovo za svaki library da bi funkcionirao trebate napraviti objekt iz neke klase definirane u njemu, što je feature C++-a.
C# se ne koristi.
C# se ne koristi.
- dekip#2283
- Ozbiljni hardveraš
- Postovi: 88
- Pridružen/a: pon srp 30, 2018 10:04 pm
- Lokacija: Beograd
- Kontakt:
Re: Programski jezik "C"
Pa zapravo u pitanju je varijanta C.
int main() se ne koristi uopšte. Zapravo, ne vidi se da se koristi.
Iz pera kolege Ružića:
https://www.sk.rs/2016/11/sklp05.html
int main() se ne koristi uopšte. Zapravo, ne vidi se da se koristi.

Iz pera kolege Ružića:
Osnovni programski jezik koji se koristi na platformi Arduino je svojevrsna pojednostavljena varijanta jezika C. Tačnije, iz jezika su sklonjene neke kompleksnije stvari i uvedena je C/C++ biblioteka zvana Wiring, koja je preuzeta iz pomenute platforme Processing. Upravo iz činjenice da je Processing pisan za jezik Java, a Wiring za C/C++ proizilaze i nevelike razlike u njihovoj sintaksi.
https://www.sk.rs/2016/11/sklp05.html
- david.zovko#9626
- e-radionica.com team
- Postovi: 436
- Pridružen/a: ned tra 15, 2018 2:59 pm
- Lokacija: Osijek, Croatia
- Kontakt:
Re: Programski jezik "C"
Ajde da uđemo u raspravu, zašto ne
int main() je skriven da useru bude jednostavnije, ali nalazi se u main.cpp:
A što se tiče programskog jezika, C programski jezik nije OOP (objektno-orijentirani jezik). U Arduinu se u (gotovo) svakom libraryju koriste objekti, tj. definirane su klase koje se inicijaliziraju kao objekti u sketch-ovima. Objekata u C-u nema, dok ih C++ ima. Npr., pri ruci mi je library za naš Maker Display, verziju s 32x9 LEDica. U .h fajlu libraryja definirali smo klasu:
Tu su samo prototipi funkcija, dok je puni kod (definicija) u .c fajlu. U sketchu, odmah na početku kreiramo objekt iz ove klase:
Sve ovo ne bi bilo moguće napraviti u čistom C-u. Također, ako u Arduino IDE napraviš klasu, uspješno će se kompajlirati. Npr.:
Jesam li sve dobro do sada rekao?
Vratimo se na Wiring. O njemu ne znam puno, očito je kombinacija C i C++, što doznajem iz brzinskog guglanja.
Što bi značio da je Arduino "varijanta C-a"? Kako misliš da bismo onda trebali definirati programski jezik Arduina?

int main() je skriven da useru bude jednostavnije, ali nalazi se u main.cpp:
Kod: Označite sve
#include <Arduino.h>
int main(void)
{
init();
#if defined(USBCON)
USBDevice.attach();
#endif
setup();
for (;;) {
loop();
if (serialEventRun) serialEventRun();
}
return 0;
}
Kod: Označite sve
class Maker_LED_Matrix_32 {
public:
Maker_LED_Matrix_32();
int begin(); //Init function.
int initLEDMatrix(); //Function sets up everything e-radionica Social Dispaly board.
void brightness(uint8_t _fontLight, uint8_t _backingLight); //Sets up font brightness and background brightness.
void message(char* msg, int _ms, int _stp, int _rep); //Writes user defined message/text on display.
void stopScroll(); //Calling this function scrolling will stop.
void resumeScroll(); //Calling this function scrolling will continue.
void deleteScroll(); //Function removes everything from screen and clears buffer.
void picture(uint8_t* p, int posX, int posY); //Function writes picture on screen (without scrolling).
void scrollPicture(uint8_t* p, int _ms, int _stp); //Function writes picture on screen with scrolling.
void scrollTxtAndPics(char* txt, uint8_t** p, uint16_t* picsPos_x, uint16_t* picsPos_y, uint8_t n, int _ms, int _stp, int _rep);
int repeatCount(); //Function return how much times message has been displayed
void picture8Bit(uint8_t* p, int xSize, int ySize, int x0, int y0, uint8_t bright); //Function that removes everything from screen and displays a 8bit gray scale image.
int wifiNetwork(const char* _ssid, const char* _pass); //Funcion connects to WLAN network.
int webPage(char* url, int _ms, int _stp, int _rep); //Function opens web page and displays text on LED matrix.
int webPageText(char* url, char* webText, int _n); //Function opens a web and saves data into a string without displayig on matrix.
int _dispMode;
};
Kod: Označite sve
Maker_LED_Matrix_32 led; //Maker LED Matrix display library constructor.
Kod: Označite sve
class demoClass {
private:
int privateVar;
public:
float c;
demoClass(int k) {
c = k;
}
};
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}

Vratimo se na Wiring. O njemu ne znam puno, očito je kombinacija C i C++, što doznajem iz brzinskog guglanja.
Što bi značio da je Arduino "varijanta C-a"? Kako misliš da bismo onda trebali definirati programski jezik Arduina?
- dekip#2283
- Ozbiljni hardveraš
- Postovi: 88
- Pridružen/a: pon srp 30, 2018 10:04 pm
- Lokacija: Beograd
- Kontakt:
Re: Programski jezik "C"
Pa u principu si sve dobro napisao. I sve je tačno. I naravno kvalitetna rasprava je prava stvar.
Ipak, zamolio bih te da baciš oko na link ka online stranici našeg časopisa. Kolega Ružić je to sve veoma dobro napisao.
Takođe:
Hvala na konstruktivnom komentaru, pogledat ću
Ipak, zamolio bih te da baciš oko na link ka online stranici našeg časopisa. Kolega Ružić je to sve veoma dobro napisao.
Takođe:
https://www.arduino.cc/en/main/FAQIn fact, you already are; the Arduino language is merely a set of C/C++ functions that can be called from your code. Your sketch undergoes minor changes (e.g. automatic generation of function prototypes) and then is passed directly to a C/C++ compiler (avr-g++). All standard C and C++ constructs supported by avr-g++ should work in Arduino. For more details, see the page on the Arduino build process.
Hvala na konstruktivnom komentaru, pogledat ću
