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

AVR Bootloader,organizacija memorije -OBJASNJENJE

[es] :: Elektronika :: Mikrokontroleri :: AVR Bootloader,organizacija memorije -OBJASNJENJE

[ Pregleda: 2224 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

gocha990
Čačak

Član broj: 234257
Poruke: 76
*.dynamic.sbb.rs.



Profil

icon AVR Bootloader,organizacija memorije -OBJASNJENJE06.08.2016. u 15:00 - pre 93 meseci
E pa ljudi vako:
Interesuje me konkretno sta je bootloader,ono sto sam procitao(eng. literatura pa verovatno ne tumacim najbolje) je da je to mali programcic koji se upise se u memoriju tacinije flesh.Kada se dobije napajanje na kotroleru ili reset bootloader odredjuje da li ce krenuti sa citanjem vec naprzenog programa ili ce preko ISP-a da naprzi nov(ovo sam razumeo kao generalno ) . Sada me zanima sta jos moze da radi taj bootloader,netreba objasnjenja vec samo da mi pomenete neke primere...

Drugo,sta se desava ako program napecem direktno bez bootloader(znam da moze ali ne znam sta onda ) ?

Trece fuse i lock bitovi,njihova svrha i objasnjenje na srpskom ako moze,malo se gubim sa egleskim objasnjenjem....?

Cetvrto,eeprom,zasta ga koristim ako naprimer program ceo napecem na flesh?
Da li ce nrp naredbom #define pi 3,182........ ovu konstantu smestiti u eeprom ili flesh(ako samo to napisem,tj. ne napisem na koju lokaciju da je stavi)?

Peto,interrupt,da li on sluzi kao klasicna "uslovna pauza ili reset" u zavisnosti kako se isprogramira ili nesto drugo?

E sada sve ovo pitam jer sam dosad radio sa arduinom(pa se moglo i bez ovih informacija),a sada prelazim na avr direktno.
Takodje sam probao ovo arduino uno kao ISP programator i avrdude i sve sam uradio kako treba(po tutorijalu sa neta) i sve mi pise da je uradjeno dobro ali program ne radi...
 
Odgovor na temu

gocha990
Čačak

Član broj: 234257
Poruke: 76
*.dynamic.sbb.rs.



Profil

icon Re: AVR Bootloader,organizacija memorije -OBJASNJENJE13.08.2016. u 11:08 - pre 93 meseci
Verovatno su moja pitanje preopsirna,pa hajde da probam da budem konkretniji...

Govorim konkretno o uC atmega328pu.
BOOTLOADER:
"Depending on the embedded system, bootloaders can begin their operation upon receiving a boot signal from a human (i.e., manual reset) or a peripheral device (i.e., the system host). This bootloader signal will first validate whether the bootloader itself is valid, determine whether the current device application is valid or not, communicate with the host to load the new application being presented, and then execute the application Flash rewrite as directed. "

Nasao sam ovo na jednom od tutoriala na netu,i ovde kaze da on prvo proverava sebe da li je validan,zatim prijavu samog uredjaja da li je validna,na sta se to odnosi?
Da li uC moze da komunicira sa drugim uredjajima npr lcd bez bootloader?
Dalje,sa avrdude sam ubacio hex file arduinovog bootloadera.

HIGH FUSE BIT: 0xDA Sto znaci da je za memoriju bootloader-a odvojeno 2KB.E sada bootloader od arduina je 5.4KB i on se ucitao bez problema,a u datasheet-u pise hfuse bits 4KB(2024 words) max, a takodje pise da nije moguce smestiti bootloader u memoriju namenjenu za aplikaciju,kako je ucitao tih 5.4KB ?

 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.dynamic.sbb.rs.

Sajt: mysql.rs


+2377 Profil

icon Re: AVR Bootloader,organizacija memorije -OBJASNJENJE15.08.2016. u 19:34 - pre 93 meseci
Citat:
gocha990:
E pa ljudi vako:
Interesuje me konkretno sta je bootloader,ono sto sam procitao(eng. literatura pa verovatno ne tumacim najbolje) je da je to mali programcic koji se upise se u memoriju tacinije flesh.Kada se dobije napajanje na kotroleru ili reset bootloader odredjuje da li ce krenuti sa citanjem vec naprzenog programa ili ce preko ISP-a da naprzi nov(ovo sam razumeo kao generalno :) ) . Sada me zanima sta jos moze da radi taj bootloader,netreba objasnjenja vec samo da mi pomenete neke primere...


bootloader radi bukvalno ovo:

STARTPROGRAMONPOWER:
- proveri da li je stecen uslov da se startuje bootloader (zavisi od bl do bl, negde treba prespojis 2 pina, negde neki pin treba bude high ili low, negde mora "Razlog za reset" da bude stagod etc, cesto uslov, posebno kod atmela, je npr da se u x ms od startovanja mcu-a posalje odredjeni kod na uart)
- ako nije stecen uslov da se startuje bootloader uradi JMP na mesto gde pocinje "pravi" kod
- ako je stecen uslov da se startuje bootloader nastavi dalje sa izvrsavanjem
- uspostavi konekciju sa klijent programom (setapuj komunikacioni kanal preko IR, UART, USB, SPI, 1Wire, WIFI .. stagod)
GLAVNABLPETLJA:
- cekaj komande od klijenta
- kad stigne komanda od klijenta izvrsi je
- goto GLAVNABLPETLJA

i to ti je to ...

sada "sta" sam BL radi zavisi od BL do BL, "svi" imaju opciju da
- obrisu cip (deo koji ne zauzima bootloader)
- upisu odredjenu vrednost na odredjenu adresu (tako se upisuje novi program preko starog)
- procita odredjenu vrednost sa odredjene adrese

sto mogu "jos" da rade, mogu svasta, mozes preko BL cesto da menjas konfig parametre samog BL-a, nekad mozes da updateujes i sam BL, mozes da menjas eeprom te na taj nacin menjas konfig parametre aplikacije, mozes da uradis neki (ili celu bateriju) test etc etc .... takodje zavisi od toga koji je mcu u pitanju bootloader je taj koji radi inicijalno konfigurisanje cipa i perfierije a u 99% slucajeva fuse bitovi se setuju pri przenju bootloadera i ne mogu se menjati kasnije (osim pri novom przenju bootloadera)

no osnovne 2 funkcije su - obrisi cip i uprogramiram mem lokaciju

sa klijent strane to izgleda otprilike

- cekaj da se ukonektujes sa bl-om
- posalji komandu da obrise cip
- posalji komandu da na pocetak program flash-a upise bajt X i pomeri pointer za 1
- dok postoji programa koji treba se upuca u cip posalji komandu da upise bajt X na poziciju pointera i poveca pointer za 1
- postavi pointer na pocetak prog memorije
- koliko ti je velik flash koji si upucavao, procitaj bajt po bajt (i pomeri svaki put pointer za jedan) i uporedi sa fajlom koji si upucao, ako naletis na gresku reci "greskaaa" i prestani


e sad, neki, moderniji (32bita, arm ...) imaju poseban bootloader u zasticenom delu cipa kome ti uopste ne mozes da pristupis, tu je fabricki i takav je kakav je, ne mozes ga obrisati, promeniti, ali se ponasa identicno kao i ovaj "obican" ... takodje neki "hobi" mcu-i imaju posebnu memoriju za bootloader i posebnu memoriju za program, pa sad ako ne koristis bootloader taj flash ti je bacen, neiskoristen, neki malo moderniji hobi cipovi mogu da fuse bitovima iskonfigurisu koliki je taj chunk date koja je odvojena za bootloader ... fora kod ovih koji imaju poseban bootloader (factory) ili imaju odvojen bootloader prostor je sto je u samom cipu napeceno kako se ponasa (npr na power on uvek ide i starta program, zaobilazi bootloader, ili ima specijalan B0 pin npr koji kad pipnes on startuje bootloader, ili uvek na reset cipa starta bootloader etc etc .. ima milion kombinacija)


Citat:
mst.petrovic:
Drugo,sta se desava ako program napecem direktno bez bootloader(znam da moze ali ne znam sta onda :) ) ?


ne zna mcu dal je taj kod koji on izvrsava "bootloader" ili "aplikacija" njemu je to sve isto ... on krece da izvrsava kod od neke adrese u memoriji, kaze "odavde mi je kod" i to puca u cpu i izvrsava, sta se tu nalazi njega ne zanima, on to izvrsava, ako se od te adrese (recimo 0x00000) nalazi bootloader on ce izvrsiti bootloader, ako se nalazi tvoj kod izvrsice tvoj kod... ti kad napeces direkt tvoj hex na cip programator ga napece od "pocetka", kada ga pucas kroz bootloader, bootloader je na pocetku a on shiftuje tvoj kod na neku "novu" adresu sa nekim malim ofsetom (cesto zbog tog ofseta bootloader moze da se gurne na kraj samog flash-a a na pocetku na adresi 0x00 imas samo jedan jmp tamo gde je pravi bootloader ... ) e sad, tu postoje neke "zackoljice" ... zavisi kako pises taj program tj generisani kod moze da ima absolutne i relativne reference (jmp npr moze da bude na +x bajtova od "trenutne lokacije" ili na adresu X), ako tvoj kod ima absolutne reference (jmp na adresu X) i ti ga pomeris bootloaderom da krece sa nekim ofsetom a ne od 0x0000 taj kod nece raditi .. postoje 2 resenja za taj problem
1. kompajliras kod (ili pises asm kod) koji ima iskljucivo relativne reference
2. u startu kazes kompajleru (tj kazes linkeru ali rekao si da te ne zanimaju detalji, tome sluze oni lkr fajlovi iliti linker skripte) da ce tvoj kod biti smesten na "drugo mesto" a ne na 0x00

Citat:
mst.petrovic:
Trece fuse i lock bitovi,njihova svrha i objasnjenje na srpskom ako moze,malo se gubim sa egleskim objasnjenjem....?


sluze za konfiguraciju cipa, svaki mcu ima svoje konfig bitove i oni se zovu ovako ili onako i sluze za razne stvari, postavljaju inicijalno ponasanje cipa (da li ce da koristi interni ili externi oscilator, da li opterecuje hf ili lf oscilator, dal mu je na ulazi rc kolo ili kristal, da li ima oscout ili ne, dal koristi reset pin, dal dozvoljava lv programiranje, dal ce na pinu X da bude funkcija Y ili funkcija Z, dal ce se samoresetuje ili ugasi ili ako napon padne ispod x, dal su u sumi ili u bunaru...) .. sta tacno koji fuse radi moras za tacno odredjeni cip da procitas u datasheet-u ... svi su pisani uber jednostavnim engleskim... ako se za neki zabodes, pitaj

lock bitovi su fuse bitovi kao i svaki drugi fuse bitovi samo su obicno malo "zasticeni" hardwerski (kada ogolis cip kiselinom ne mozes tek tako da ih vidis obicno imaju metal iznad sebe) i sluze kao i ostali fuse bitovi da postave ponasanje cipa, u ovom slucaju zovu se "lock" posto njima kazes cipu koje delove cipa dozvoljava da se citaju i pisu te mozes da zabranis da cip moze da se procita kada se stavi u programator setovanjem odgovarajucih lock bitova (te onda neko ko hoce da iskopira tvoj mcu mora plati 300eur kinezu da mu izvadi taj hex umesto da ga samo turi u programator i iscita)

Citat:
mst.petrovic:
Cetvrto,eeprom,zasta ga koristim ako naprimer program ceo napecem na flesh?

ako pitas, ne treba ti :)


Citat:
mst.petrovic:
Da li ce nrp naredbom #define pi 3,182........ ovu konstantu smestiti u eeprom ili flesh(ako samo to napisem,tj. ne napisem na koju lokaciju da je stavi)?


nece je smestiti nigde, #define ne definise konstantu vec makro te svuda u kodu gde pise pi on ce upise 3.141..

konstantne koje definises sa const idu u flash

citanje i pisanje iz eproma se radi posebnim komandama (ee_read() i ee_write() obicno) i eprom se obicno koristi za cuvanje konfiguracionih podataka za aplikaciju koji mogu da se menjaju iz aplikacije... npr ako pogledas moj sid.crsndoo.com source videces da se u epromu cuva
- default temperatura
- P koeficijent
- I koeficijent
- D koeficijent
- tip senzora i podaci o istom

dakle to su vrednosti koje se citaju "ponekad" (kad se upali sprava uglavnom) i menjaju retko (kada konfigurises novu drsku u ovom slucaju)

Citat:
mst.petrovic:
Peto,interrupt,da li on sluzi kao klasicna "uslovna pauza ili reset" u zavisnosti kako se isprogramira ili nesto drugo?

ne, ne, da
nikakva to nije pauza, niti je to kakav reset, to je nesto potpuno drugo, ali "svrha" interapta i sta je "interapt" prevazilaze pisanije unutar jednog ovakvog posta ..

Citat:
mst.petrovic:
Govorim konkretno o uC atmega328pu.
BOOTLOADER:
"Depending on the embedded system, bootloaders can begin their operation upon receiving a boot signal from a human (i.e., manual reset) or a peripheral device (i.e., the system host). This bootloader signal will first validate whether the bootloader itself is valid, determine whether the current device application is valid or not, communicate with the host to load the new application being presented, and then execute the application Flash rewrite as directed. "

Nasao sam ovo na jednom od tutoriala na netu,i ovde kaze da on prvo proverava sebe da li je validan,zatim prijavu samog uredjaja da li je validna,na sta se to odnosi?


da 328pu ARDUINO BOOTLOADER (pazi, postoje i DRUGI bootloaderi za 328pu!!! ne samo taj) onu prvu stvar koju radi (proveri da li je stecen uslov da se startuje bootloader) radi tako sto proveri
- da li si uradio manualni reset (kada se butne cip zna dal se butno iz reseta na reset pin, reseta od wdt-a, ili se butno na power on)
i onda krene da radi ... pri tome arduino bootloader ce da ceka onda neko vreme komandu od klijenta i ako je ne dobije odradice jmp direkt na tvoj kod

ovo oko validacije je nebitno, generalno on ce procita sam sebe i svoj checksum da proveri dal je ok (da nije slucajno "pokvaren") ali time ne moras da se zanimas

Citat:
mst.petrovic:
Da li uC moze da komunicira sa drugim uredjajima npr lcd bez bootloader?


naravno

Citat:
mst.petrovic:
Dalje,sa avrdude sam ubacio hex file arduinovog bootloadera.

HIGH FUSE BIT: 0xDA Sto znaci da je za memoriju bootloader-a odvojeno 2KB.E sada bootloader od arduina je 5.4KB i on se ucitao bez problema,a u datasheet-u pise hfuse bits 4KB(2024 words) max, a takodje pise da nije moguce smestiti bootloader u memoriju namenjenu za aplikaciju,kako je ucitao tih 5.4KB ?


krenes uvek od datasheet-a
citaj od stranice 331 :) ja nisam neki atmel ljubitelj da znam napamet a da ja citam pa da prepricavam nema smisla, posebno sto su atmel datasheetovi pisani idiotski :( (za pocetak u datasheet-u kaze da ima 32k flash-a a onda na grafu pokaze da mu se flash zavrsava na 16k a nigde ne kaze explicitno da su to adrese "word" vrednosti a ne "byte" vrednosti)




 
Odgovor na temu

zarkocgyus
Bar

Član broj: 102691
Poruke: 121
*.crnagora.net.



+2 Profil

icon Re: AVR Bootloader,organizacija memorije -OBJASNJENJE15.08.2016. u 20:46 - pre 93 meseci
Citat:
posebno sto su atmel datasheetovi pisani idiotski :(

LIKE.
I sto u fuse bitovima 1 znaci 0 i obratno...
 
Odgovor na temu

gocha990
Čačak

Član broj: 234257
Poruke: 76
*.mbb.telenor.rs.



Profil

icon Re: AVR Bootloader,organizacija memorije -OBJASNJENJE16.08.2016. u 09:21 - pre 93 meseci
Hvala bogdane,kao i uvek konkretno i jasno...
E sada sledeca pitanja :D
Gde mogu da nadjem na primer za za spi.h koje sve funkcije su dostupne i njihovo objasnjenje,mislim na avr studio koji je takodje nabudzen do zla boga jedva da mogu ponesto da se snadjem...
Kada goglam za spi on mi izbacuje princip rada sto sam i naucio ima na nekom maxembeded bas lepa objasnjenja
E sada tu ima i primer programa koji nije bas objasnjen vec bukvalno samo preleteno opisom...

Drugo,pitanje za moderatore, da li moze da se u ovoj temi pitaju sva pitanja direkto ili indirektno vezana za atmega328 ,mozda da se i naziv teme promeni.
Idem iz pocetka sa atmelom pa bih pitao sve sto me zanima o njegovom programiranju i koriscenju,pa bih onda verovatno tema bila puna objasnjenja na srpskom i korisna za ostale polaznike...
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.dynamic.sbb.rs.

Sajt: mysql.rs


+2377 Profil

icon Re: AVR Bootloader,organizacija memorije -OBJASNJENJE16.08.2016. u 10:04 - pre 93 meseci
Citat:
gocha990:
Gde mogu da nadjem na primer za za spi.h koje sve funkcije su dostupne i njihovo objasnjenje,mislim na avr studio koji je takodje nabudzen do zla boga jedva da mogu ponesto da se snadjem...


"negde" bi trebao da postoji programing manual / library manual / library documentation etc etc ... za te biblioteke u studiju ali kao sto rekoh atmel ima neki kvar u glavi kada je dokumentacija u pitanju tako da ja retko posegnem za istom ako ne moram te nemam ideju gde se ovaj doc nalazi (nadam se da ce neko ko zna dopisati gde je taj manual za avr studio) te mogu da ti kazem kako to radim ja :D .. bez dokumentacije :D ... ubacis lepo u svoj kod #include <spi.h> i onda ctrl klik na spi.h i otvori ti studio direkt spi.h fajl i u njemu vidis direktno koje su funkcije dostupne i komentare koji su uglavnom dovoljno jasni da mozes da skontas kako se koja funkcija i za sta koristi ... isto tako i za bilo koju drugu biblioteku (btw ja ne trosim studio tako da ne znam dal ctrl click radi u njemu, normalni editori to tako rade, mozda moras desni klik pa open file ili tako nesto)

takodje sta moze da bude korisno kada ne mozes iz koda da razglavis sta se tacno kako i za sta koristi, pokupis imena exportovanih funkcija (samo imena) i copy paste 4-5 imena koja idu za redom u fajlu direkt u google samo ih odvojis razmakom, i obicno na prvoj stranici bude link na pdf sa dokumentacijom za taj library :D

sto se atmela tice ako se dobro secam manual za biblioteke (ukljucujuci spi.h) je deo "Atmel Software Framework" sto je valjda taj paket biblioteka
http://www.atmel.com/Images/doc8432.pdf
dokumentacija je: http://asf.atmel.com/docs/latest/

mada mislim da je to vise okrenuto njihovim (uzasno losim) sam kontrolerima sa vrlo pateticnom podrskom za mega kontrolere

sto se direktno SPI-a tice koliko ja znam avr studio nema spi biblioteku koja je univerzalna. postoji spi biblioteka za arduino ali ne za studio.. koliko ja znam studio ima samo spi za sam kontrolere ( http://asf.atmel.com/docs/late...x/html/sam_spi_quickstart.html ) mada nemoj da me drzis za rec, kao sto rekoh nisam neki veliki korisnik avr studia

za resenje problema za spi pogledaj
http://maxembedded.com/2013/11/the-spi-of-the-avr/
http://www.atmel.com/Images/At...SPI_ApplicationNote_AVR151.pdf

sad teoretski ti mozes da prebacis spi biblioteku za arduino u studio i uz male izmene bi trebalo da radi (obzirom da je pisana za taj kontroler) ili da pogledas da li ipak postoji spi u samom studio za mega kontrolere


 
Odgovor na temu

gocha990
Čačak

Član broj: 234257
Poruke: 76
*.adsl.eunet.rs.



Profil

icon Re: AVR Bootloader,organizacija memorije -OBJASNJENJE16.08.2016. u 12:13 - pre 93 meseci
Bogdane kad mi tako kazes za atmel,dodji mi da predjem na pic...
Da li postoji bolji program od avr srudia za avr ?
Ova dva linka sam sa maxembedded sam gledao i super je obajsnjen,ali nmg da skontam ceo kod u avr studiu.
Npr svud pisu:
Char data.....
SPDR=data();
Gde ja unosim tu datu,,uopste ne kontak kodeks programa,na par primera sam video da za cip max7221 direktno pisu bajt,nema naprimemr da ja zadam u funkciji direktno broj koji hocu...
Ako je tako zancieni onda bi ja trebalo da pravim biblioteku za svaki cip jer u suprotnom moram da pisem "ogroman" kod kao u asembleru,a cemu onda toliki studio ako to nisu olaksali mada predpostavljam da ima samo to nmg da nadjem...
Pogleda cu danas kad dodjem kuci da li moze da otvorim lib i da vidim objasnjenja funkcija...
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.com
Via: [es] mailing liste

Sajt: mysql.rs


+2377 Profil

icon Re: AVR Bootloader,organizacija memorije -OBJASNJENJE16.08.2016. u 12:32 - pre 93 meseci
nemoj zbog mene da prelazis :D posebno ne na pic :D ... obe firme rade
nesto dobro a nesto lose negde je jedan bolji negde drugi, ocigledno
(ako uspesnost definisemo kao ostvarenje cilja) je microchip uspesniji
od atmela obzirom da ih je kupio al sad .. da je atmelov doc uzas, to je
opste mesto .. za ostalo, bem lig a.. ja sam odavno prestao da koristim
i jedne i druge

bolje od avr studija za avr, ne verujem
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.dynamic.sbb.rs.

Sajt: mysql.rs


+2377 Profil

icon Re: AVR Bootloader,organizacija memorije -OBJASNJENJE17.08.2016. u 15:11 - pre 93 meseci
Citat:
gocha990:
Npr svud pisu:
Char data.....
SPDR=data();
Gde ja unosim tu datu,,uopste ne kontak kodeks programa,na par primera sam video da za cip max7221 direktno pisu bajt,nema naprimemr da ja zadam u funkciji direktno broj koji hocu...


moras da das direktniji primer za ovo pitanje, nemam ideju sta pitas

 
Odgovor na temu

gocha990
Čačak

Član broj: 234257
Poruke: 76
*.dynamic.sbb.rs.



Profil

icon Re: AVR Bootloader,organizacija memorije -OBJASNJENJE18.08.2016. u 17:54 - pre 93 meseci
Ono da se vidi biblioteka sam se snaso,tj ima da pise ,al sam batalio to dok ne nauciom osnove sa GPIO,naime evo:
razlika izmedju:
f_cpu ***
#define f_cpu *** // znda da sada define nosi kroz celi program frekvenciju,eto i pitanje u vezi toga,kada koristim ovu funkciju?

Evo npr primera koji sam napiso u avr studio 7 i nece,zasto?

#include <avr/io.h>
#include <util/delay.h>


int main(void)
DDRD = 0x00;
PORTD = 0x01;
DDRC=0x10;
{
/* Replace with your application code */
while (1)
{
if(PIND==0x10)
PORTC=0x10;
else
PORTC=0x00;
}
}

A da,ako moze konkretno objasnjenje za makefile?
 
Odgovor na temu

gocha990
Čačak

Član broj: 234257
Poruke: 76
*.dynamic.sbb.rs.



Profil

icon Re: AVR Bootloader,organizacija memorije -OBJASNJENJE18.08.2016. u 18:46 - pre 93 meseci
Sa neta skinem kod:

#ifndef F_CPU
#define F_CPU 16000000UL // 16 MHz clock speed
#endif

#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
DDRC |= (1<<PC5); //Makes first pin of PORTC as Output
// OR DDRC = 0x01;
DDRD &= ~(1<<PD0);//Makes firs pin of PORTD as Input
// OR DDRD = 0x00; //Makes all pins of PORTD input
while(1) //infinite loop
{
if(PIND &= (1<<PD0) == 1) //If switch is pressed
{
PORTC |= (1<<PC0); //Turns ON LED
_delay_ms(3000); //3 second delay
PORTC &= ~(1<<PC0); //Turns OFF LED
}
}
}
Samo sam promenio pinove i portove i ovo hoce da se kompailira,ali kad ga ubacim program ne radi...
 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: AVR Bootloader,organizacija memorije -OBJASNJENJE

[ Pregleda: 2224 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

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