Sari la conținut
ELFORUM - Forumul electronistilor

Inceput de drum


Vizitator nehalem89

Postări Recomandate

Vizitator nehalem89

Salutare,am inceput achizita si studierea programarii pic-uriilor, am cumparat componentele pentru o clona a pickit2, as vrea sa-mi recomandati ceva pentru programarea pic-uriilor, ma intereseaza in C, cu programarea ma descurc, scriu coduri, aplicatii, inteleg sintaxa, algoritmi. Electronica stiu dar nu la un nivel prea mare, adica stiu sa descifrez fara probleme o schema, stiu sa fac scheme pentru pcb-uri dupa anumite scheme, cunosc componentele, am mai facut diferite montaje electronice. Ce as vrea eu este o mica indrumare cam ce ar trebuii sa fac la inceput de drum in programarea microcontrolerelor pic. Astept sugestiiMultam fain :multumesc

Link spre comentariu
  • Răspunsuri 27
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • Liviu M

    5

  • lama

    3

  • crispus

    2

  • yo9hnf

    1

Top autori în acest subiect

Eu iti recomand cartea lui O.G. Popa - "Invata Hardeare, Firmware si Software Design".

Din punctul meu de vedere este "un ceaslov" (la propriu) exceptional !!!

 

Teoretic la Libraria Eminescu din Bucuresti este cel mai mic pret. Practic o poti lua de la librarii online cu coduri de promotie sau doar promotie la un pret mai mic. Eu am dat parca 29 lei de la Elefant.

 

Posted Image

Link spre comentariu
Vizitator nehalem89

mi-ai pus un link unde am gasit doar ptr incepatori in programarea in C mai apoi microcontrolere, ma repet, programare stiu, stiu sa scriu un cod, scriu aplicatii windows complexe, nu vreau initiere in C, vreau initiere de la trecea programarii aplicatii windows la pic-uri, cum sa interactionez cu un uC ca sa il pot flashui, cunosc modele de memorie, magistrale, etc, mi-am descarcat mikroC for pic, ce ma intereseaza e sa stiu cat de diferite sunt codurile ptr uC fata de cod windows, linux, de ex vreau sa setez un port anume sa se comporte ca si in sau ca si out, cnd flashuiesc ce pini sa folosesc, si cel mai important e sa ma familiarizez cu datasheet-ul unui uC ca sa stiu sa interactionez cu el.ma repet nu vreau tutoriale C doar ca sa invat programare.

Link spre comentariu

...cam ce ar trebuii sa fac la inceput de drum in programarea microcontrolerelor...

În cazul tău, cred că e suficient să alegi un model de MCU (Micro Controller Unit) mai simplu, pe 8 biţi, cum ar fi PIC16F628 (asta numai dacă vrei neapărat să începi cu PIC-uri şi nu cu altceva), apoi să download-ezi datasheet-ul de la producător şi să-l citeşti. Tot producătorul (indiferent că este vorba de Microchip, adică cel care face familia numită PIC, sau altul) dă şi o mulţime de Application Notes foarte interesante.

 

Înainte să te arunci în lumea PIC-urilor, îţi recomand să te uiţi şi la AVR-uri, o familia de MCU-uri produsă de firma Atmel. Mie mi se par mai uşor de învăţat şi mai puternice. Cel mai simplu programator pentru AVR-uri constă din 5 sârme legate la un port paralel de PC (LPT).

 

O altă opţiune foarte interesantă este familia MSP430 produsă de Texas Instruments. Există o placă de dezvoltare numită LaunchPad, placă ce vine cu programator USB, convertor USB-serial, soclu pentru MCU-uri, 2 MCU-uri diferite, cuarţ, LED-uri, butoane, debugger pas cu pas, soft gratuit, lecţii video produse chiar de Texas Instruments, cablu USB şi conectori la numai 4.3 dolari. Dacă faci comanda la magazinul Texas Instruments, transportul şi vama sunt gratuite (le plăteşte Texas Instruments). Ţie îţi ia din card doar echivalentul în lei a 4.3 USD. Mai ieftin de atât nu cred că există.

 

După părerea mea, atât MSP430-urile căt şi AVR-rile sunt mai uşor de învăţat şi, în acelaşi timp, mai puternice decât PIC-urile. Atât AVR-urile cât şi MSP-urile au compilator de C gratuit, memorie mai multă, sunt mai rapide, etc.

Link spre comentariu
Vizitator nehalem89

...cam ce ar trebuii sa fac la inceput de drum in programarea microcontrolerelor...

În cazul tău, cred că e suficient să alegi un model de MCU (Micro Controller Unit) mai simplu, pe 8 biţi, cum ar fi PIC16F628 (asta numai dacă vrei neapărat să începi cu PIC-uri şi nu cu altceva), apoi să download-ezi datasheet-ul de la producător şi să-l citeşti. Tot producătorul (indiferent că este vorba de Microchip, adică cel care face familia numită PIC, sau altul) dă şi o mulţime de Application Notes foarte interesante.

 

Înainte să te arunci în lumea PIC-urilor, îţi recomand să te uiţi şi la AVR-uri, o familia de MCU-uri produsă de firma Atmel. Mie mi se par mai uşor de învăţat şi mai puternice. Cel mai simplu programator pentru AVR-uri constă din 5 sârme legate la un port paralel de PC (LPT).

 

O altă opţiune foarte interesantă este familia MSP430 produsă de Texas Instruments. Există o placă de dezvoltare numită LaunchPad, placă ce vine cu programator USB, convertor USB-serial, soclu pentru MCU-uri, 2 MCU-uri diferite, cuarţ, LED-uri, butoane, debugger pas cu pas, soft gratuit, lecţii video produse chiar de Texas Instruments, cablu USB şi conectori la numai 4.3 dolari. Dacă faci comanda la magazinul Texas Instruments, transportul şi vama sunt gratuite (le plăteşte Texas Instruments). Ţie îţi ia din card doar echivalentul în lei a 4.3 USD. Mai ieftin de atât nu cred că există.

 

După părerea mea, atât MSP430-urile căt şi AVR-rile sunt mai uşor de învăţat şi, în acelaşi timp, mai puternice decât PIC-urile. Atât AVR-urile cât şi MSP-urile au compilator de C gratuit, memorie mai multă, sunt mai rapide, etc.

 

Voi tine cont de cea ce mi-ai zis, ma voi documenta si despre produsele din familia texas instruments si atmel.

Alta intrebare este: am nevoie de kit de dezvoltare?

am vazut programatoare care vin si cu kit de dezvoltare, va rog sa ma lamuriti cu kitul de dezvoltare, in momentul de fata m-am apucat sa construiesc o clona a pickit2, cel tarziu maine voi reveni cu o intrebare.

 

multam

Link spre comentariu

La început şi eu am zis ca şi tine, că nu-mi trebuie placă de dezvoltare.Acum, de câte ori încerc o familie nouă de MCU-uri, pornesc prin a cumpăra o placă de dezvoltare. Nici nu mă gândesc fără. Mă scuteşte de mult timp pierdut şi de multă bătaie de cap. E important să ai o placă de dezvoltare, mai ales la început, când toate lucrurile sunt neclare.Placă de dezvoltare înseamnă o plăcuţă pe care stă MCU-ul, împreună cu ceva LED-uri şi butoane. Multe au şi programator inclus. Unele mai complicate au şi display sau alte periferice, depinde ce nevoi ai. Oricum trebuie să pui MCU-ul pe ceva, iar dacă îţi faci singur, te costă mai mult.Sfatul meu este să sacrifici 15 lei şi să-ţi comanzi un LaunchPad direct de la Texas Instruments. În câteva zile îţi vine coletul la uşă, cu tot ce-ţi trebuie. Download-ezi softul şi te apuci de programat.Pun pariu că nici nu termini de făcut PICkit-ul până atunci. :rade: Probabil că nu mă vei crede şi vei continua pe drumul încâlcit al PIC-urilor. Te înţeleg, şi eu am făcut la fel la început. Încă mai am un PICkit 2 original. Îl folosesc pe post de programator pentru AVR-uri şi, arareori, pe post de analizor logic sau de adaptor USB<->serial. La programat PIC-uri nu-l mai folosesc demult. Am renunţat la ele imediat ce am prins gustul altor MCU-uri.Până la urmă, nu contează cu ce începi. Dacă te prinde microbul, vei ajunge să lucrezi cu mai multe familii de MCU-uri. Dacă nu te prinde microbul, iar nu contează cu ce începi.Spor!

Link spre comentariu
Vizitator nehalem89

febra m-a prins de ceva vreme numai că imi cautam momentul de "pornire" dece am ales drumul drumul embeded? ptr ca de cativa ani ma ocup de programare c++, c, c# si baze de date la nevoie, inainte de programare ma ocupam mult de electronica şi nu vreau sa las electronica vreau cumva să le imbin si imi plac f mult automatizarile. cat despre uC-e ma intereseaza o gama mai larga dar eu aveam impresia ca pic-urile sunt mai usoare ca produsele atmel sau texas instruments

Link spre comentariu
Vizitator nehalem89

bun, atunci ai cumva un link catre placi de dezvoltare? eu as cumpara o placa cat de cat adica nici profesionala care costa de ma rupe dar nici minimal ptr incepatori ca ajung de dau banii aiurea si ptr ca nu imi ofera mare lucru, deci ma intereseaza o placa de dezvoltare cu care sa-mi fac treaba atat acum ca si incepator dar si mai incolo cnd fac cv mai seriosmultam fain

Link spre comentariu

am fost si eu oarecum in situatia ta. Am inceput cu PIC-uri (asta facusem la scoala si mi se parea ca nu mai exista si alltceva :d).Daca o sa vrei sa continui cu PIC, daca o sa iei din familia 18F, o sa poti sa le programezi in C, si nu trebuie sa-ti bati capul cu bancuri de memorie, etc...Daca vrei pe 32 biti, poti sa te orientezi spre ARM. Ai documentatie la greu, exemple, placi de dezvoltare, etc...Momentan mi-am luat un Raspberry Pi, si mi se pare un sistem foarte bun la banii pe care i-am dat. Tot din aceeasi serie, mai ieftin ar fi BeagleBone (varianta mai ieftina Beagle Board)...Cum zicea si RoGeorge, important e sa alegi arhitectura care ti se potriveste mai bine si pe urma sa-i dai bice :d

Link spre comentariu

Salut

Cum adica AVR-urile sunt mai puternice?

Pe testele care le-am vazut eu laMIPS-uri parea sa conduca picurile.

Deci sa ma uit si e ele sa vad daca merita migrarea?

Si eu in scoala tot picuri am facut. De aia ma mir daca avr0ul e mai bun de ce nu se face

PS:in scoala am facut si niste controlere de la philips si TI, dar picul era la accent.

Link spre comentariu

Care e "mai bun" e doar o părere personală.

Fiecare microcontroller e bun la câte ceva, depinde ce vrei să faci cu el. Nu există cel mai bun sau cel mai prost şi nu vreau să transformăm subiectul într-o polemică de genul X e mai bun ca Y.

 

Să încerce fiecare mai multe microcontroller-e şi să vadă singur avantajele şi dezavantajele diferitelor familii.

Fiecare microcontroler are calităţile şi neajunsurile lui, nu există "cel mai bun".

 

N-aş recomanda Raspberry Pi (RPi) pentru începătorii care vor să înveţe microcontroller-e, pentru că e prea avansat.

RPi e un calculator în toată regula, cu Linux, interfaţă grafică, USB, reţea, tastatură, mouse şi monitor, de zici că-i PC. La RPi deja îţi baţi capul cu alte probleme, care ţin mai mult de Linux şi de lumea calculatoarelor, decât de microcontroller-e.

 

În schimb, RPi e foarte bun (şi ieftin) pentru cine are nevoie de o placă de dezvoltare cu ARM (Acorn RISC Machine) şi OS (Operating System), sau pentru cine vrea să înveţe Embedded Linux.

Link spre comentariu

Deci concluzia ca incepator mai bine continui cu ce am inceput(pic) ca si asa vreau sa trec la PIC18 care am inteles ca e mai, si foarte, etcSa vad si cel de la TI, daca tot e ieftin sa il iau si sa ma joc un pic cu el

Link spre comentariu
Vizitator nehalem89

bun, am facut un cod care aprinde anumite leduri, mai exact am facut un zar. am gasit rezolvarea pentru pic18f452, eu as pune momentan pe 16f628A ptr ca in momentul de fata asta am la indemana.

Codul arata asa:

#define Switch PORTB.F0

#define Apasat 0

 

void main() {

unsigned char i = 1;

unsigned char cate;

unsigned zar[] = {0, 0x08, 0x22, 0x2a, 0x55, 0x5d, 0x77}; //adresele indica spre cate leduri voi aprinde

 

TRISB = 0; //iesirea portb devine 0

TRISA = 1; //A0 devine intrare

PORTB = 0; //toate ledurile sunt stinse

 

while(1)

{

if(Switch == Apasat)

{

cate = zar; //atribui variabilei "cate" valoarea de pe poz i

PORTB = cate; //cate porturi pun pe 1

Delay_ms(4000); //timp de 4 sec sunt pornite leduriile dupa ce apas switch-ul

PORTB = 0; //dupa 4 secunde aduc portul B in stare 0 (sting toate leduriile)

i = 0; //aduc i in stare default

}

i++;

if(i > 6)

{

i = 1;

}

}

}

 

mi-a compilat cu succes, intrebariile mele sunt:

unsigned zar[] = {0, 0x08, 0x22, 0x2a, 0x55, 0x5d, 0x77};

valoriile hex reprezinta cumva cate terminale din pic18f452 pun pe 1?

daca da, cum imi dau seama de asta, adica de unde stiu ca 0x2a imi aprinde 3 leduri.

Problema cu header-ele, cnd am creat proiect nou am ales pic-ul dorit, si dupa aia nu am inclus nici un header, IDE-ul in urma alegerii picului include automat header-ul pic-ului respectiv?

imi poate spune cineva mai multe despre header-ele unui pic?

mi-ar fii placut sa vad o eroare din cauza ca nu am inclus header-ul ptr pic-ul dorit de mn, daca nu mi-a dat nici o eroare si nici un warning ma gandesc ca in clipa in care am ales pic-ul a inclus compilatorul header-ul folosit de mine.

Link spre comentariu

Daca nu spui si ce compilator (eventual si ce IDE) folosesti cred c-o sa fie greu sa-ti spuna cineva ceva.

Referitor la continutul lui zar, trebuie sa "reprezinti" variabilele respective in binar.

De exemplu zar[1] = 0x08 = 0b00001000. Operatia PORTB=zar[1], seteaza practic fiecare pin al portului B la valoarea corespunzatoare din zar[1], adica RB7..RB4 si RB2..RB0 sunt 0, iar RB3 e 1.

La fel ca indecsii in C, numerotarea diversilor biti in registri / diversilor pini in porturi incepe cu 0.

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări