 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
sortaj Član


Pridružen-a: Sre 23 Jul 2008 21:51 Prispevkov: 812 Aktiv.: 3.95 Kraj: Med Vipavo in Štanjelom
|
Objavljeno: Tor Mar 03, 2009 9:52 pm Naslov sporočila: X-ta tema o primerjavi med PIC in AVR + prošnja za nasvet |
|
|
No, veliko je tem o razlikah med PIC-i in AVR-ji. TUKAJ je Silvo lepo opisal razlike med njimi, a se je osredotočil na prehod med njimi. Sam sem popoln začetnik v programiranju. Odločil se bom med PIC ali AVR C. do sedaj sem "navijal" za PIC-e dokler nisem prebral nekaj tem o AVR-jih tukaj in pa še eno primerjavo tukaj . Seveda vsak svojo "robo" hvali. Če bi se odločil za PIC-e bi si naredil tale programator (v bistvu mi manjkajo še čipi-HTE ), če bi pa za AVR-je bi pa verjetno kar pri VolkD-ju kupil tale programator. Naslednja odločitev-kateri programski jezik? Spet vsak svojo "goni" nekateri, da je dobro začet z assamblerjem, drugi basic, tretji C itd... Nekako sem v dilemi med assamblerjem in C-jem. C se mi zdi še najbolj razumljiv, je pa res, da bomo v šoli programirali motorolo z assamblerjem... malo sem skeptičen... nekje sem zasledil (mislim, da je Aly to rekel), da je za AVR C jezik veliko literature ne vem... za PIC imam tole knjigo. Je prednost, da je literatura v slovenščini (ja, vem...brez angleščine ne prideš nikamor...to pravi tisti, ki je že veliko delal-jaz sem komaj v srednji šoli...). No tukaj če mi lahko jazno razložite razlike med čipi-dobre, slabe strani itd... v šoli je 50% možnosti, da bom delal s PIC-i drugo leto (flowcode...). Pa tudi glede programskega jezika bi potreboval nasvet. Ravnokar imam odprto košarico na farnell-u... v kratkem bom naročil. Odločil se bom tako, kot mi boste svetovali.
lepo prosim!
lep pozdrav _________________ Svet je bil analogen, dokler ni Planck vsega zafrknil... |
|
Nazaj na vrh |
|
 |
gumby Član


Pridružen-a: Sob 28 Apr 2007 12:32 Prispevkov: 4066 Aktiv.: 18.41
|
Objavljeno: Tor Mar 03, 2009 9:56 pm Naslov sporočila: |
|
|
Oboje sprobaj, in boš videl, kaj ti bolj leži... Tako glede čipov, kot programskega jezika. _________________ Tule nisem več aktiven. |
|
Nazaj na vrh |
|
 |
sortaj Član


Pridružen-a: Sre 23 Jul 2008 21:51 Prispevkov: 812 Aktiv.: 3.95 Kraj: Med Vipavo in Štanjelom
|
Objavljeno: Tor Mar 03, 2009 10:01 pm Naslov sporočila: |
|
|
mja...
kerj prvič naročam na farnell-u imam 10% popust in bom kar precej naročil.
za poskusit...ne vem...verjetno bo treba...
lp _________________ Svet je bil analogen, dokler ni Planck vsega zafrknil... |
|
Nazaj na vrh |
|
 |
Highlag Član


Pridružen-a: Pet 23 Jan 2004 20:42 Prispevkov: 4034 Aktiv.: 17.02 Kraj: Črnuče
|
Objavljeno: Tor Mar 03, 2009 10:10 pm Naslov sporočila: |
|
|
Kar se asebmlerja tiče je dobro poznati vsaj kakšne osnove. Če boš hotel katerikoli procesor resno uporabiti, boš moral preštudirati njihove specifikacije, kjer pa so podani primeri uporabe registrov in njihovih funkcij v asemblerju. Tudi če obvladaš C bi verjetno imel težave s pisanjem programov za mikrokontrolerje. Rabiš vedet kar nekaj specifičnih detajlov kako se stvari streže.
Sam sem začel z assemblerjem. In to na Picu. Na razpolago je samo ~ 32 ukazov, ki se jih hitro naučiš na pamet. Ker moraš vsako funkcijo napisat sam se pošteno spoznaš tudi z samo arhitekturo kontrolerja. Potem je prehod na višje jezike lažji. _________________ If at first you don't succeed, destroy all evidence that you tried. |
|
Nazaj na vrh |
|
 |
bungee Član


Pridružen-a: Pon 07 Mar 2005 18:49 Prispevkov: 1479 Aktiv.: 6.24 Kraj: Ljubljana
|
Objavljeno: Tor Mar 03, 2009 11:41 pm Naslov sporočila: |
|
|
Najprej začni z assemblerjem, pa ne zato, ker bi te želel strašit z njim. Predvsem zato, da boš tudi kasneje lahko kakšno časovno zahtevno funkcijo lahko napisal direktno v asm-ju. Seveda pa potem kar C v roke in po kontrolerju.
Kar se pa izbire kontrolerja tiče bom pa pristranski, tako da ti ne bom svetoval. Vzami PIC  |
|
Nazaj na vrh |
|
 |
Slemi Član

Pridružen-a: Pet 29 Okt 2004 13:29 Prispevkov: 386 Aktiv.: 1.63 Kraj: Hrastnik
|
Objavljeno: Tor Mar 03, 2009 11:52 pm Naslov sporočila: |
|
|
Vzami tistega, katerega uporablja nekdo, ki živi blizu tebe, da lahko skočiš do njega po kak nasvet in rešitev. Za začetek si nabavi malo zalogo, če boš slučajno videl, da ti izbrani uC ne leži. Začni ali v asemblerju ali v basicu, uporabi kak program, ki je brezplačen, dokler se ne odličiš za uC. Preveri tudi, kateri uC-ji so lažje dobavljivi.
Toliko z moje strani.
LP
P.S.: uC -> mikrokrmilnik |
|
Nazaj na vrh |
|
 |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.92 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Tor Mar 03, 2009 11:58 pm Naslov sporočila: |
|
|
Za assembleraša je praktično vseeno kaj vzeti. Sam sem praktično "celo življenje" delal s PIC-i. Za prvi izdelek z AVR-jem sem praktično porabil en "nočni šiht", kjer sem preštudiral datasheet za mikrokontroler. Največ časa sem porabil za spozavanje orodja (AVR studia) Prav tako mi je največ časa vzela "priprava terena". Na splošno bi rekel, da pozavalec enega assemblerja ne bo imel težav z drugim.
Če izdam še majhno skrivnost: Pripravlja se "naša forumska" revija, v kateri bo članek z primeri assemblerske kode ter primer uporabne aplikacije z priloženo izvorno kodo. _________________ lp
Silvo |
|
Nazaj na vrh |
|
 |
aly Član



Pridružen-a: Tor 28 Sep 2004 14:51 Prispevkov: 9407 Aktiv.: 39.70 Kraj: Kranj - struževo
|
Objavljeno: Sre Mar 04, 2009 1:50 am Naslov sporočila: lasp |
|
|
Če sem bil omenjen v uvodnem nagovoru, potem se pa res moram oglasit
PIC-a ti odsvetujem že zaradi nekoliko bolj zakompliciranega programatorja (tistih 13V me je vedno motilo)
Če si začetnik, ti predlagam takole (pazi, zdej bom komplicial):
Ali izbereš pot od spodaj navzgor (asm -> C) ali pa od zgoraj navzdol (basic-> C -> asm)
Basic (bascom) je tako zelo visokonivojska zadeva, da ne rabiš vedet skoraj nič o zgradbi procesorja. Vse se zgodi samo od sebe. Primer (v tej kratki kodi že uporablja ADC in izpisuje na LCD):
Koda: |
Config Adc = Single , Prescaler = Auto
Start Adc
Dim W As Word , Channel As Byte
Channel = 0
Do
W = Getadc(channel)
Print "Channel " ; Channel ; " value " ; W
Loop |
C je visokonivojski jezik, ki ima bolj zahtevno strukturo, ampak omogoča (in tudi zahteva) poseganje globoko v hardver oz. poznavanje registrov in njihovih funkcij.
primer: (približno ista količina kode kot zgoraj le prižiga in ugaša LEDico)
Koda: |
#define F_CPU 1000000
#include <avr\io.h>
#include <util\delay.h>
int main(void)
{
DDRC = 0x20; // PC5 je izhod
while(1) // glavna zanka
{
PORTC |= 0x20; // z masko postavi PC5 na 1
_delay_ms(500); // počakaj pol sekunde
PORTC &= ~0x20; // z masko postavi PC5 na 0
_delay_ms(500); // počakaj pol sekunde
}
} |
Assembler pa je nujen za detajlno spoznavanje mikrokontrolerja in pisanje časovno zahtevnih rutin.
Primer (v tej kodi se komaj inicializira kontroler, nastavi vse naslove, kje se nahaja program v pomnilniku, nastavi RAM in Stack in ne naredi praktično nič drugega):
Koda: |
#include "tn26def.inc"
.org $000
rjmp ZACNI
.org $006
rjmp PREKINITEV
.org $009
PREKINITEV:
in r18,SREG
clz
nop
out SREG,r18
reti
ZACNI:
ldi r16,RAMEND
out SP,r16
sez
ldi r16,0b00000001
out TCCR0,r16
ldi r16,(1<<TOIE0)
out TIMSK,r16
sei
nop
rjmp PC-1 |
Vsi zgoraj pripeti primeri so na random pobrani s tega foruma. Sintaksa ni preverjena in je ne komentirajte!
Vsekakor priporočam, da ( najprej izbereš AVR ), prebereš kompleten datasheet, nabaviš en osnoven procesor (recimo Mega 32) v DIP ohišju, zlotaš 4 upore na konektor (in že imaš programator), naložiš Bascom in tipkaš prvih par vrstic.. in LEDica že utripa. Ko narediš prvih par enostavnih projektov, da vidiš kako stvari špilajo, pa čimprej (!) zamenjaš na C. Tam pa se začne resno delo.
Assembler je za kakšno veliko in kompleksno aplikacijo preprosto prepočasen za pisat.
Moj realen primer:
Krmiljenje testne naprave: motorji, pnevmatika, senzorji, komunikacija RS232 in I2C, PWM, interrupti, ADC, časovno kritične meritve... komplicirano.
V assemblerju sem to pisal več kot 2 meseca. Vsak dan.
V C-ju bi bilo narejeno v pol krajšem času.
V Bascomu pa se sploh ne da naredit česa takega
Še to:
Asm okolje : AvrStudio
C okolje : WinAVR
Basic okolje : Bascom
Programator : PonyProg
Moje skromne izkušnje. Pa veselo na delo!  _________________ I'm going to stand outside, so if anyone asks, I'm outstanding  |
|
Nazaj na vrh |
|
 |
Glitch Član

Pridružen-a: Pet 07 Apr 2006 11:40 Prispevkov: 1477 Aktiv.: 6.32
|
Objavljeno: Sre Mar 04, 2009 9:12 am Naslov sporočila: |
|
|
Ne zastopim zakaj PonyProg, ko pa ima že AvrStudio vse kar potrebuješ. Enako velja za ves "home made" SW, ki programira AVRje. _________________ Answers: $1, Short: $5, Correct: $25, dumb looks are still free. |
|
Nazaj na vrh |
|
 |
bolha95 Član


Pridružen-a: Pet 14 Dec 2007 21:33 Prispevkov: 296 Aktiv.: 1.39 Kraj: Križe / Tržič
|
Objavljeno: Sre Mar 04, 2009 11:44 am Naslov sporočila: |
|
|
Pony prog je fajn in poceni zadeva - pa še hitro ga sestaviš. Naslednji korak pa je lahko JTAG-ICE, ki za osnovo uporablja ATmega16. Z njim lahko že debugiraš integriran je v AVR Studio - odlična zadevica. Seveda se ga na najmanjših CPU-jih ne da uporabiti.
Jaz sem pa en celoten projekt naredil na simulatorju in ga potem samo še zapekel v procesor - in zadeva je delovala
VMLAB simulator _________________ LP,
Robi
Kjer se znanje konča, se domišljija začne |
|
Nazaj na vrh |
|
 |
Glitch Član

Pridružen-a: Pet 07 Apr 2006 11:40 Prispevkov: 1477 Aktiv.: 6.32
|
Objavljeno: Sre Mar 04, 2009 11:50 am Naslov sporočila: |
|
|
Je ze bilo omenjeno, pa vseeno: AVR ISP mkII _________________ Answers: $1, Short: $5, Correct: $25, dumb looks are still free. |
|
Nazaj na vrh |
|
 |
sortaj Član


Pridružen-a: Sre 23 Jul 2008 21:51 Prispevkov: 812 Aktiv.: 3.95 Kraj: Med Vipavo in Štanjelom
|
Objavljeno: Sre Mar 04, 2009 10:38 pm Naslov sporočila: |
|
|
Najlepša hvala vsem za odgovore!
Danes sem se posvetoval še z profesorjem, ki mi je svetoval AVR in se bom tako kar za AVR in ASM odločil. Obrniti se žal nimam na nikogar razen na vas, ker v bližnji in dalnji okolici nihče ne programira AVR-jev, na šoli pa je podpora na PIC-ih!
Na farnellu bom nabavil ATMEGA8, ATMEGA16, ATMEGA32 in ATTINY26 za začetek...bom videl kako bo šlo...
lep pozdrav! _________________ Svet je bil analogen, dokler ni Planck vsega zafrknil... |
|
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: 495 dni
Powered by phpBB © 2001, 2005 phpBB Group
|