Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Arduino Code u C file - kako izvesti?

[es] :: Elektronika :: Mikrokontroleri :: Arduino Code u C file - kako izvesti?

Strane: 1 2

[ Pregleda: 4563 | Odgovora: 21 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

asmir004
Asmir Mujagic
Lukavac, BIH

Član broj: 244961
Poruke: 18
109.175.2.*



Profil

icon Arduino Code u C file - kako izvesti?16.02.2010. u 14:42 - pre 126 meseci
Pozdrav svima!

Prije svega da se predstavim, ja sam Asmir studiram mašinski fakultet odsijek mehatronika. Tako da me interesuje programiranje mikrokontrolera i rad sa njima.

Imam pitanje u vezi Arduino kodom koji se upisuje u MC. Posto Arduino koristi programiranje koje je bazirano na C-u i na Javi koliko sam uspio da s kontam,
Da li se moze kako prepraviti program pisan za Arduino samo u *.c* program koji mogu upisati sa bilo kojim programatorom u Atmelove mikrokontrolere, a da ne koristim Arduino plocu?

 
Odgovor na temu

Odin D.
Mlađi referent za automatizaciju
samoupravljanja

Član broj: 37292
Poruke: 2549



+8367 Profil

icon Re: Arduino Code u C file - kako izvesti?16.02.2010. u 22:24 - pre 126 meseci
Nije bitno u kom programskom jeziku je napisan program, prije upisivanja u chip mikrokontrolera taj program se mora prevesti u binarnu verziju masinskog jezika, u procesu koji se zove kompajliranje, pomocu programa koji se zove kompajler.

Drugim rjecima, taj binarni fajl (ili hex fajl, kako ga zovu) je krajnji rezultat, bez obzira u kom jeziku ti pisao svoj program, jer mikrokontroler ne razumije ni C, ni Javu.... nego samo masinski kod.
Ako je taj dobiveni hex fajl standardan (a ja mislim da jeste, jer arduino okruzenje koristi avr-gcc kompajler) onda ga mozes upisati u bilo koji odgovarajuci avr-mikrokontroler bilo kojim drugim avr-programatorom (elektronski uredjaj koji upisuje taj hex fajl u chip mikrokontrolera).

Ja neradim sa AVR-ovim, i ovo sto sam napisao je neka generalna prica, ali sigurno ce se naci neko da te detaljnije uputi sta-kako-gdje-posto...?

Pozdrav.
 
Odgovor na temu

asmir004
Asmir Mujagic
Lukavac, BIH

Član broj: 244961
Poruke: 18
109.175.1.*



Profil

icon Re: Arduino Code u C file - kako izvesti?17.02.2010. u 08:43 - pre 126 meseci
Razumio sam to sto ste napisali. Naravno da se samo hex fajl upisuje u mikrokontroler.

Mada ja nisam uspio naci odgovarajuci kompajler da taj program kompajliram u hex fajl. Pokusavao sam sa Arduino softverom sa kojim se inace radi na Arduino plocama ali mi nije poslo za rukom.

U svakom slucaju hvala na odgovoru.
 
Odgovor na temu

Odin D.
Mlađi referent za automatizaciju
samoupravljanja

Član broj: 37292
Poruke: 2549



+8367 Profil

icon Re: Arduino Code u C file - kako izvesti?17.02.2010. u 10:35 - pre 126 meseci
Nisi naveo dovoljno podataka da bismo mogli razumjeti o cemu se tacno radi.

1. U kom jeziku je napisan tvoj program?
2. Sa kojim kompajlerom pokusavas od njega da napravis hex?

Ako koristis Arduino razvojno okruzenje, ja mislim, ako me sjecanje dobro sluzi (jer sam o tome samo procitao neki info-clanak nekad na internetu) da se u tom okruzenju ne programira ni u kakvom klasicnom programskom jeziku (tipa C ili C++), vec je razvijen neki poseban 'jezik', doduse slican C++, koji se u nekom pretprocesiranju svede na cini mi se C++, pa onda dalje kako to vec ide.

Taj posebni 'jezik' je napravljen na osnovu nekog vec postojeceg koji je namjenjen ucenju programiranja, cini mi se da se zove nesto kao 'Processing' ili tome slicno. Ideja iza Arduino projekta je da se omoguci i ljudima koji nisu usko iz te struke da se pomocu tog 'lakog' jezika i arduino hardvera donekle ukljuce u te stvari.

Dakle, ako je tvoj program napisan u C++ onda preskoci taj medjustepen pretprocesiranja pomocu koga se program u tom 'Processing' jeziku svede na C++, jer je tvoj vec u C++, pa ga iskompajliraj u Arduino okruzenju (ako znas kako se to radi - ja ne znam nikad nisam ni vidio to okruzenje).
U svakom slucaju, imas i druge kompajlere, tj. mozes direktno i bez arduino okruzenja da koristis npr avr-gcc da ti iskompajlira tvoj program, pa ga onda upisi u mikrokontroler pomocu flash-programatora i odgovarajuceg softvera.
 
Odgovor na temu

asmir004
Asmir Mujagic
Lukavac, BIH

Član broj: 244961
Poruke: 18
109.175.1.*



Profil

icon Re: Arduino Code u C file - kako izvesti?17.02.2010. u 12:09 - pre 126 meseci
Evo programa koji imam, to je upravljanje DC motorima preko H mosta, pomocu PS/2 'misa'

Code:
 
#define MDATA 4
#define MCLK 5

int motor1Pin1 = 8; 
int motor1Pin2 = 9; 

int motor2Pin1 = 7; 
int motor2Pin2 = 6; 

int motorsPinEnable = 2;

int valueX = 0;
int valueY = 0;

void gohi(int pin)
{
  pinMode(pin, INPUT);
  digitalWrite(pin, HIGH);
}

void golo(int pin)
{
  pinMode(pin, OUTPUT);
  digitalWrite(pin, LOW);
}

void mouse_write(char data)
{
  char i;
  char parity = 1;

  /* put pins in output mode */
  gohi(MDATA);
  gohi(MCLK);
  delayMicroseconds(300);
  golo(MCLK);
  delayMicroseconds(300);
  golo(MDATA);
  delayMicroseconds(10);
  /* start bit */
  gohi(MCLK);
  /* wait for mouse to take control of clock); */
  while (digitalRead(MCLK) == HIGH)
    ;
  /* clock is low, and we are clear to send data */
  for (i=0; i < 8; i++) {
    if (data & 0x01) {
      gohi(MDATA);
    } 
    else {
      golo(MDATA);
    }
    /* wait for clock cycle */
    while (digitalRead(MCLK) == LOW)
      ;
    while (digitalRead(MCLK) == HIGH)
      ;
    parity = parity ^ (data & 0x01);
    data = data >> 1;
  }  
  /* parity */
  if (parity) {
    gohi(MDATA);
  } 
  else {
    golo(MDATA);
  }
  while (digitalRead(MCLK) == LOW)
    ;
  while (digitalRead(MCLK) == HIGH)
    ;
  /* stop bit */
  gohi(MDATA);
  delayMicroseconds(50);
  while (digitalRead(MCLK) == HIGH)
    ;
  /* wait for mouse to switch modes */
  while ((digitalRead(MCLK) == LOW) || (digitalRead(MDATA) == LOW))
    ;
  /* put a hold on the incoming data. */
  golo(MCLK);
  //  Serial.print("done.\n");
}

/*
 * Get a byte of data from the mouse
 */
char mouse_read(void)
{
  char data = 0x00;
  int i;
  char bit = 0x01;

  //  Serial.print("reading byte from mouse\n");
  /* start the clock */
  gohi(MCLK);
  gohi(MDATA);
  delayMicroseconds(50);
  while (digitalRead(MCLK) == HIGH)
    ;
  delayMicroseconds(5);  /* not sure why */
  while (digitalRead(MCLK) == LOW) /* eat start bit */
    ;
  for (i=0; i < 8; i++) {
    while (digitalRead(MCLK) == HIGH)
      ;
    if (digitalRead(MDATA) == HIGH) {
      data = data | bit;
    }
    while (digitalRead(MCLK) == LOW)
      ;
    bit = bit << 1;
  }
  /* eat parity bit, which we ignore */
  while (digitalRead(MCLK) == HIGH)
    ;
  while (digitalRead(MCLK) == LOW)
    ;
  /* eat stop bit */
  while (digitalRead(MCLK) == HIGH)
    ;
  while (digitalRead(MCLK) == LOW)
    ;

  /* put a hold on the incoming data. */
  golo(MCLK);

  return data;
}

void mouse_init()
{
  gohi(MCLK);
  gohi(MDATA);
  //  Serial.print("Sending reset to mouse\n");
  mouse_write(0xff);
  mouse_read();  /* ack byte */
  //  Serial.print("Read ack byte1\n");
  mouse_read();  /* blank */
  mouse_read();  /* blank */
  //  Serial.print("Sending remote mode code\n");
  mouse_write(0xf0);  /* remote mode */
  mouse_read();  /* ack */
  //  Serial.print("Read ack byte2\n");
  delayMicroseconds(100);
}

void setup()
{
  Serial.begin(9600);
  mouse_init();
  pinMode(motor1Pin1, OUTPUT); 
  pinMode(motor1Pin2, OUTPUT); 
  pinMode(motor2Pin1, OUTPUT); 
  pinMode(motor2Pin2, OUTPUT); 
  pinMode(motorsPinEnable, OUTPUT);

  digitalWrite(motorsPinEnable,HIGH); 


}

/*
 * get a reading from the mouse and report it back to the
 * host via the serial line.
 */
void loop()
{
  char mstat;
  char mx;
  char my;
  int inByte = 0;         // incoming serial byte
  
  /* get a reading from the mouse */
  mouse_write(0xeb);  /* give me data! */
  mouse_read();      /* ignore ack */
  mstat = mouse_read();
  mx = mouse_read();
  my = mouse_read();
  valueX +=mx;
  valueY +=my;
  
 if (Serial.available() > 0) {

  /* send the data back up */
  //Serial.print(mstat, BIN);
  inByte = Serial.read();
  switch(inByte){
    case 'X':
      Serial.println(valueX, DEC);
    break;
    case 'Y': 
     Serial.println(valueY, DEC);
     break;
     default:
     break;
  }
 }
  delay(10);
  Serial.print("\tX=");
  Serial.print(mx, DEC);
  Serial.print("\tY=");
  Serial.print(my, DEC);
  Serial.print("\tXX=  ");
  Serial.print(valueX, DEC);
  Serial.print("\tYY=  ");
  Serial.print(valueY, DEC);
  Serial.println();
  delay(20);  /* twiddle */
 
 if(my < 0)
   backward(my);
 else if(my > 0)
   forward(my);
   
 if(mx < 0)
   left(mx);
 else if (mx > 0)
    right(mx);

}

void forward(int del){
   Serial.println("Begin");
    digitalWrite(motorsPinEnable,HIGH);
    digitalWrite(motor1Pin1, LOW); 
    digitalWrite(motor1Pin2, HIGH);
    
    digitalWrite(motor2Pin1, HIGH); 
    digitalWrite(motor2Pin2, LOW);
   
    delay(abs(del)); 
    digitalWrite(motorsPinEnable,LOW);
    Serial.println("Einde");
}

void backward(int del){
    digitalWrite(motorsPinEnable,HIGH);
    digitalWrite(motor1Pin1, HIGH); 
    digitalWrite(motor1Pin2, LOW); 
    
    digitalWrite(motor2Pin1, LOW);
    digitalWrite(motor2Pin2, HIGH);
    
    delay(abs(del)); 
    digitalWrite(motorsPinEnable,LOW);
}

void left(int del){
    digitalWrite(motorsPinEnable,HIGH);
    digitalWrite(motor1Pin1, LOW); 
    digitalWrite(motor1Pin2, HIGH);  
    
    digitalWrite(motor2Pin1, LOW);
    digitalWrite(motor2Pin2, HIGH);
    
    delay(abs(del)); 
    digitalWrite(motorsPinEnable,LOW);
}

void right(int del){
    digitalWrite(motorsPinEnable,HIGH);
    digitalWrite(motor1Pin1, HIGH); 
    digitalWrite(motor1Pin2, LOW);  
    
    digitalWrite(motor2Pin1, HIGH);
    digitalWrite(motor2Pin2, LOW);
    
    delay(abs(del));  
    digitalWrite(motorsPinEnable,LOW);



Ja koliko vidim ovo je program pisan u tom nekom posebnom 'jeziku', koji je lican C++
Na arduino ploci su pinovi od 0 do 13 postavljeni i tako se i u kodu pise od 0 - 13, a ja koliko se razumijem u mikrokontrolere pinovi su rasporedjeni po portovima PORTA, PORTB, PORTC, PORTD sa po 8 pinova ili bita od 0-7. Dok u ovom kodu imam pinove 8 i 9 koji se koriste. Pa me ta 'prepravka koda' malo zbunjuje. Posto sam mislio koristiti ATMEGA 8 mikrokontroler.
 
Odgovor na temu

Odin D.
Mlađi referent za automatizaciju
samoupravljanja

Član broj: 37292
Poruke: 2549



+8367 Profil

icon Re: Arduino Code u C file - kako izvesti?17.02.2010. u 13:14 - pre 126 meseci
Ovo jeste C++ file, ali nije glavni program vec 'pomocni' fajl koji sadrzi funkcije koje bi trebale biti koriscene u glavnom programu.
Posto to nisi mogao sam da uvidis ja pretpostavljam da ti je trenutno poznavanje ove problematike neprilagodjeno onome sto hoces da uradis.
Da bi dalje znali o cemu pricamo potrebno je da pojasnis sta hoces:

A) hoces samo da postojeci program iz nekog razloga ubacis u mikrokontroler bez ikakvog daljnjeg interesovanja/razumijevanja za te stvari?
ili
B) hoces da ucis o programiranju mikrokontrolera?
 
Odgovor na temu

asmir004
Asmir Mujagic
Lukavac, BIH

Član broj: 244961
Poruke: 18
109.175.1.*



Profil

icon Re: Arduino Code u C file - kako izvesti?17.02.2010. u 14:41 - pre 126 meseci
Pa onda glavni program je bootloader koji se nalazi u mikrokontroleru na Arduino ploci.

Ja iskreno bi volio da naucim o programiranju mikrokontrolera.
Programski jezici za mikrokontrolere su mi manje poznati, mada sam radio u raznim programskim jezicima za pravljenje aplikacija kao npr. VB, Pascal, Fortran pa i C, s tim da sam sad vidio da sam ga zaboravio.
Prije svega poceo bi sa AVR-om, dobro poznajem Basic, tako da vjerujem da bi i BASCOM mogao da naucim za kratko vrijeme.
 
Odgovor na temu

Odin D.
Mlađi referent za automatizaciju
samoupravljanja

Član broj: 37292
Poruke: 2549



+8367 Profil

icon Re: Arduino Code u C file - kako izvesti?17.02.2010. u 15:46 - pre 126 meseci
Citat:
asmir004: Pa onda glavni program je bootloader koji se nalazi u mikrokontroleru na Arduino ploci.

Nije. Bootloader je program koji ucitava glavni program (koji je tad u obliku hex fajla) u mikrokontroler.
Glavni program, ako je pisan u C-u ili C++, mozes prepoznati tako sto se u njemu nalazi funkcija main.
Znaci, u onom modulu gdje stoji npr.
Code:

int main(....neki parametri) {
....
....

}

e to je glavni program (i jedini, jer nema sporednih programa). Svi ostali fajlovi sadrze informacije koje se koriste u tom glavnom modulu.

Medjutim, kao sto rekoh, ne znam da li je tvoj program bas neki C/C++ fajl (iako koristi njihovu sintaksu), ili je to neka posebna verzija onog jezika za arduino. U ovom drugom slucaju moguce je i da je ono sto si postovao ustvari glavni program... pa se to u arduinu prvo prebaci u C/C++, pa se onda kompajlira i upisuje u mikrokontroler. Znaci poslije pisanja tog programa ima niz koraka koji tebi nije vidljiv.
Ako malo pregledas direktorijume u kojima se nalazi taj projekt, trebao bi negdje da nadjes hex fajl koji je ustvari ono sto se upisuje u mikrokontroler, pa vidi sta sa njim mozes da radis.

Ali ako si naumio da ucis o programiranju mikrokontrolera onda kreni od pocetka. Mozes i pomocu arduino okruzenja, ako ga vec imas, a da li je to najbolji/najlaksi put ne bih znao da ti kazem, jer ne znam nista o tom okruzenju.
Sacekaj jos malo, sigurno ce se javiti neko ko radi sa atmelom pa ce moci vise da ti kaze.




 
Odgovor na temu

asmir004
Asmir Mujagic
Lukavac, BIH

Član broj: 244961
Poruke: 18
109.175.1.*



Profil

icon Re: Arduino Code u C file - kako izvesti?17.02.2010. u 17:07 - pre 126 meseci
Evo mala komparacija Arduino i C/C++ jezika

Code:

Arduino/Processing Language Comparison
The Arduino language (based on Wiring) is implemented in C/C++, and therefore has some differences from the Processing language, which is based on Java.

Arrays

Arduino                                Processing
int bar[8];                             int[] bar = new int[8];
bar[0] = 1;                            bar[0] = 1;           


int foo[] = { 0, 1, 2 };             int foo[] = { 0, 1, 2 }; or
                                           int[] foo = { 0, 1, 2 };

Loops

Arduino                                Processing
int i;                                     for (int i = 0; i < 5; i++) { ... }
for (i = 0; i < 5; i++) { ... }     

Printing

Arduino                                Processing
Serial.println("hello world");        println("hello world");

int i = 5;                                int i = 5;
Serial.println(i);                        println(i);



int i = 5;                               int i = 5;
Serial.print("i = ");                  println("i = " + i); 
Serial.print(i);
Serial.println();     


Tako da ima te neke male razlike u pisanju samog programa, a evo link gdje sam nasao projekat i tu ima samo program koji sam postovao ranije. Znaci nema hex fajla.
http://www.coded.be/en/MouseControlledArduinoRobot#

 
Odgovor na temu

Odin D.
Mlađi referent za automatizaciju
samoupravljanja

Član broj: 37292
Poruke: 2549



+8367 Profil

icon Re: Arduino Code u C file - kako izvesti?17.02.2010. u 17:40 - pre 126 meseci
Ako nemas hex fajl, tj. imas samo arduino izvorni kod, onda download-uj arduino razvojno okruzenje i iskompajliraj taj arduino program u njemu. Onda ces dobiti hex fajl koji mozes zgurati bilo kojim avr-programatorom u mikrokontroler.
 
Odgovor na temu

asmir004
Asmir Mujagic
Lukavac, BIH

Član broj: 244961
Poruke: 18
109.175.1.*



Profil

icon Re: Arduino Code u C file - kako izvesti?17.02.2010. u 18:27 - pre 126 meseci
Imam to razvojno okruzenje i pri kompajliranju nema novih fajlova, to sam probao prije nego sam postavio temu.
Znaci da se ne pojavljuju nikakvi dodatni fajlovi kao npr. hex fajl koji bi mogao da koristim na drugim mikrokontrolerima.
 
Odgovor na temu

Odin D.
Mlađi referent za automatizaciju
samoupravljanja

Član broj: 37292
Poruke: 2549



+8367 Profil

icon Re: Arduino Code u C file - kako izvesti?17.02.2010. u 19:28 - pre 126 meseci
Arduino koristi avr-gcc kao kompajler i avrdude za ubacivanje hex coda u mikrokontroler, tako da negdje izmedju njih dvojice mora da se pojavi .hex fajl.
avr-gcc izbacuje .elf fajl, a avr-objcopy od tog .elf fajla pravi .hex fajl, u slucaju da taj avrdude zahtjeva izricito .hex fajl (a vecina programatora zahtjeva).
Nakon sto kliknes na "Compile" i kad dobijes poruku da je taj proces kompajliranja uspjesno zavrsen, pretrazi po direktorijumu projekta .elf i .hex fajlove. Moraju negdje biti.

Mozda ima i neki 'temporary' direktorijum gdje se cuvaju ti rezultati dok se projekt ne snimi, pa ga obavezno i snimi nakon kompajliranja.

Treca mogucnost je da se medjurezultati cuvaju samo u RAM-u, ali to bi vec bila budalastina za medalju, pa ne ne vjerujem u to.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15255
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2320 Profil

icon Re: Arduino Code u C file - kako izvesti?18.02.2010. u 11:57 - pre 126 meseci
nisam bas 1/1 procitao celu pricu pa u startu izvinjenje ako je nesto vec receno ...

elem ... arduino app koristi Processing kao osnovu (program koji u originalu generise java kod tako sto procesira korisnikov ulaz) koji je prepravljen da umesto javu generise c++ kod.

to pretprocesiranje koje processing u ovom slucaju radi je generalno
- da ti da odaberes plocu (arduino, nano, mega, mini, bt, lilipad, sanguino ...)
- u odnosu na odabranu plocu - konfigurise uC (konfiguracija se nalazi u boards.txt)
- u odnosu na odabranu plocu - kompajlira tvoj kod zajedno sa kodom iz hw/cores/<core definisan u boards.txt>
- linkuje kompajlirani kod za rad sa bootloaderom (source i hex bootloadera je u hw/bootloaders/<uC>) + sa bibliotekama koje si odabrao

u hw/cores/xyz/
ces da nadjes mail.cpp i ostale cpp/h koji idu u tvoj program ....

main.c izgleda:
Code:

void main(){
 init();
 setup();
 for(;;) loop; 
 return 0;
}


dakle ti implenetiras u tvom kodu loop .. setup ..

ako neces da koristis arduino app da generises kod .. generalno sve sto ti treba je da

- pokupise c/cpp/h fajlove iz HW/core direktorijuma za procesor koji te zanima
- pokupis c/cpp/h fajlove iz library direktorijuma za biblioteke koje te zanimaju
- pokupis svoje c/cpp/h fajlove iz projekta
- napravis svoj make file
- dodas konfiguraciju uC-a prema onome sto pise u boards.txt (ili napises sam kako vec oces da konfigurises uC)
- kompajliras sa avr-gcc

nadam se da ti je pomoglo
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15255
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2320 Profil

icon Re: Arduino Code u C file - kako izvesti?18.02.2010. u 12:05 - pre 126 meseci
vidim da si pitao gde su "intermediate fajlovi"

kada uradis "sketch/verify/compile" (CTRL+R) on iskompajlira projekat

svi fajlovi se nalaze u /tmp/build##############.tmp/

(##### - to je neki random hex broj)

tu su ti cpp, o, elf i hex fajlovi

kada ugasis arduino app, on pobrise za sobom taj direktorijum
 
Odgovor na temu

asmir004
Asmir Mujagic
Lukavac, BIH

Član broj: 244961
Poruke: 18
109.175.1.*



Profil

icon Re: Arduino Code u C file - kako izvesti?18.02.2010. u 15:24 - pre 126 meseci
hvala na odbovoru, ja mislim da ce mi pomoci
pokusat cu da to sredim kako, hvala jos jednom
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15255
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2320 Profil

icon Re: Arduino Code u C file - kako izvesti?18.02.2010. u 15:37 - pre 126 meseci
nema na cemu ... obrati paznju da ti taj ide ne "prepravlja" kod .. samo doda sve smorne stvari oko njega (konfiguraciju, definicije perferija i slicno) .. podrzano je dosta atmela tako da generalno ako u svoj atmel po zelji sprzis bootloader (imas ih sve u bootloader diru) mozes da koristis arduino ide za veliki broj atmela (sve do atmega644p koji je na sanguino ploci) tako da je prilicno zgodan i za ucenje i za brz rad a ne generise nista sporiji kod nego da ti sve pises sam ... + ima cudo i karate biblioteka dostupno za njega ....


 
Odgovor na temu

asmir004
Asmir Mujagic
Lukavac, BIH

Član broj: 244961
Poruke: 18
109.175.1.*



Profil

icon Re: Arduino Code u C file - kako izvesti?18.02.2010. u 16:03 - pre 126 meseci
ako sam dobro skontao, kad sprzim bootloader u MC, onda mogu da koristim MC kao arduino i da u njega mogu da upisem ovaj kod koji imam
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15255
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2320 Profil

icon Re: Arduino Code u C file - kako izvesti?18.02.2010. u 16:21 - pre 126 meseci
bas tako .. stuces odgovarajuci bootloader u odgovarajuci uC i vise ti ne treba przilica uopste vec direktno iz arudino software-a uploadujes hod kroz seriski port ... bitno je samo da na taj uC zakacis neki max232 ili slican level shifter da imas seriski port koji okacis na komp ... ili okacis neki avrisp ili slican programer pa vozis kroz njega ...

obrati paznju samo na podrzane uC-ove ..

(ime arduino ploce = oznaka uC-a na ploci ):
sanguino = atmega644p
atmega328 = atmega328p
diecimila = atmega168
mega = atmega1280
mini = atmega168
bt = atmega168
lilypad328 = atmega328p
lilypad = atmega168
pro328 = atmega328p
pro = atmega168
atmega168 = atmega168
atmega8 = atmega8

bootloader mozes da upucas direkt iz arduino gui-a ako okacis "kompatibilan" programer (avr-isp, avr-isp mkII, usbtiny isp ...)

obrati paznju da default arduino ide nema podrsku za sanguino, moras da dodas tu podrsku sam - dakle ako oces atmega644p moras da ga malo "dosiljis" - reci ako ne uspes da ti pomognem, a ovi ostali svi dolaze "default" sa arduino aplikacijom.


 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15255
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2320 Profil

icon Re: Arduino Code u C file - kako izvesti?18.02.2010. u 16:23 - pre 126 meseci
samo jedna stvar - da ne svatis pogresno ... taj hex koji ti izgenerise arduino ide je nativni program .. nije nikakva interpretacija kao sto postoje vaijacije .. razlika je samo sto je linkovan da se nalazi na lokaciji "posle bootloadera" .. nista posebno .. kada bi promenio linker skriptu mogao bi da ga spucas i bez bootloadera (cak stavise mozda moze i direkt ovako - ali ja nisam nikad probao - nisam bas iskusan sa atmelom)
 
Odgovor na temu

asmir004
Asmir Mujagic
Lukavac, BIH

Član broj: 244961
Poruke: 18
109.175.1.*



Profil

icon Re: Arduino Code u C file - kako izvesti?18.02.2010. u 16:47 - pre 126 meseci

Da li se brise bootloader (ATmegaBOOT.hex, posto sam mislio koristiti ATmega8 uC) iz uC pri programiranju vise puta, ili on ostaje zapisan prilikom upisivanja meni potrebnih drugih programa, ili svaki put moram upisivati i bootloader.

Hvala u svakom slucaju, puno ste mi pomogli.
 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: Arduino Code u C file - kako izvesti?

Strane: 1 2

[ Pregleda: 4563 | Odgovora: 21 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.