Jump to content
ELFORUM - Forumul electronistilor

initiere in c pentru microcontrolere


Recommended Posts

Salutare,Deoarece mai este un pic si se apropie iarna, mi-am propus sa ma apuc sa invat c-ul pentru programarea pic-urilor.In acest sens, rog pe cei initiati sa ma indrume de unde sa apuc de aceasta problema.In principiu, cum am reusit sa invat singur assembler-ul pentru aceste microcontrolere, cred ca voi reusi si cu c-ul si sunt dispus sa incep blink-ul primului led.Astept indrumari, pareri, ....Numai bine

Link to comment
  • Replies 103
  • Created
  • Last Reply

Top Posters In This Topic

E foarte bine dacă ai început cu un limbaj de asamblare.

 

Pentru învăţat C, orice compilator (de preferinţă gratuit şi Open Source) e foarte bun. C-ul rămâne acelaşi, indiferent de compilator. Există nişte standarde de limbaj, standarde pe care orice compilator serios le respectă.

 

Ia orice carte sau manual de C, citeşte-o şi fă exerciţiile din carte. După aceea, poţi trece la embedded C, adică la programat microcontroller-e folosind limbajul C.

 

Îţi recomand să începi făcând programe obişnuite pe calculator. După ce ai învăţat şi stăpâneşti C-ul, vei putea trece la embedded C fără niciun efort (avînd în vedere că deja ai făcut ceva asamblare).

 

Internetul e plin de material didactic despre C. Uite un exemplu:

http://www.tutorialspoint.com/cprogramming/index.htm

 

Ca un exemplu de compilator, GCC este un compilator foarte bun şi este Open Source. Multe firme producătoare de microcontroller-e îl folosesc, chiar dacă nu specifică asta. GCC este gratuit, deşi unele firme cer bani (e legal asta) pentru IDE-ul lor care conţine un GCC gratuit.

 

Un start foarte bun ar fi IDE-ul Eclipse (Eclipse este tot gratuit şi Open Source, ca şi GCC-ul, în plus, atât GCC cât şi Eclipse, funcţionează şi sub Windows, şi sub Linux).

http://www.eclipse.org/downloads/

Eclipse IDE for C/C++ Developers

este tot ce îţi trebuie de acolo.

 

Repet, întâi învaţă bine C, apoi treci la microcontroller-e, altfel vei bâjbăi mereu, ca măgaru-n ceaţă.

Ştiu că e greu să te abţii de microcontroller-e, dar fă un efort, pentru că va merita.

Vei rămâne cu nişte cunoştinţe care îţi vor fi de folos toată viaţa, valabile pentru orice micoprocesor sau microcontroller, nu doar pentru PIC-uri.

 

Spor!

Link to comment

Învaţă C, nu-ţi pierde vremea cu aprins LED-uri şi alte mărunţişuri.

 

După ce vei şti C, te vei simţi ca peştele-n apă, indiferent că va fi vorba de programat calculatoare sau microcontroller-e (modelul sau producătorul nu contează, C-ul e acelaşi). Numai aşa vei înţelege ce faci, cum faci şi de ce se întâmplă într-un anumit fel şi nu altfel.

 

În timp ce înveţi conceptele de bază din C, nu te opreşte nimeni ca în paralel, pe măsură ce avansezi în C, să încerci tot felul de experimente programând în C microcontroller-ele pe care le ai, nu doar calculatoare PC.

 

Sunt sigur că o să-ţi placă. Ia-le pe rând, cu răbdare. Nu trece mai departe până nu înţelegi. Dacă ai nelămuriri, întreabă, sigur va fi cineva care să-ţi explice.

 

L.E.

FOARTE IMPORTANT!

Atunci cînd înveţi, fă singur toate exerciţiile şi exemplele, altfel ai citit lecţia degeaba. Fără practică, nu se fixează cunoştinţele, iar în căteva zile sau săptămâni, vei uita aproape tot ce ai citit! Dacă unele exerciţii sunt mai grele, discută-le şi cu alţii (de exemplu pe forum).

Link to comment

Ok. Am luat eclipse si l-am instalat. Am incercat sa fac un nou proiect, dar se pare ca am ceva probleme cu configurarea programului.am incercat sa deschid un progr gata facut, si se pare ca nu gaseste iostream.h si nici nu stiu cum, de unde, si unde sa o pun. Daca ai un pic de timp, raman dator

Link to comment

Nu mi-e clar, ce ai instalat?

 

Eclipse nu are nevoie de instalare. Tot ce trebuie să faci este să download-ezi pachetul pentru C (în cazul tău se numeşte eclipse-cpp-juno-win32.zip - asta presupunând că lucrezi sub Windows, pe 32 de biţi) şi apoi să-l despachetezi unde vrei tu.

 

După ce faci asta, spune-mi te rog, pas cu pas, ce comenzi ai dat şi ce anume nu a mers.

Link to comment

Intr-un final am reusit sa il fac sa compileze fara erori sa ruleze un prim prgram (hello worl, bineinteles).Pentru azi ma opresc ca trebuie sa plec. Ideea era ca nu am gasit foarte clar cum se face un proiect nou si am mers pe bajbaite. o sa reiau maine

Link to comment

Se pare ca incep sa ma prind u pic.Mai am o intrebare: de exemplu, eu stiam ca sa apara un text , foloseam functia printf. aici vad ca este cout. unde as putea gasi o lista completa a comenzilor sau ceva de genul? ma gandesc ca sunt ceva macrouri, dar cum sa le vad?

Link to comment

Macro-urile şi funcţiile sunt lucruri complet diferite. Unele ţin de preprocesor, altele de compilator. Nu e momentul să intrăm acum în amănunte. Instrucţiunile şi funcţiile sunt lucruri complet diferite.

 

"if..." este o instrucţiune.

"printf(...)" este o funcţie.

"#include " este un macro, de fapt o macrodefiniţie, de aici vine cuvântul "macro".

 

Merge şi cu cout, şi cu printf. Dacă vrei să foloseti printf, trebuie să pui la inceput un "#include ". Vei înţelege mai târziu de ce.

 

Mai butonează-l 2-3 zile, ca să te familiarizezi, pe urmă vorbim.

 

Nu uita, fă singur exemplele din link-ul cu tutorialul. În pagina web cu tutorialul, în stânga ecranului, ai ceea ce tu numeşti "comenzi". De fapt sunt instrucţiuni, nu comenzi. Comenzile sunt altceva.

 

Lasă exemplele gata făcute de alţii. Este esenţial să scrii singur, cu mâna ta, fără să tragi cu coada ochiului.

 

Din tutorial, nu lua cu copy paste, că te păcăleşti singur. Scrie-le cu mâna ta şi apoi vezi ce greşeli ai făcut. Nu uita, greşelile sunt bune, ele sunt motorul învăţării.

 

Baftă!

Link to comment

tocmai am reusit sa definesc 2 variabile int, cu valoare predefinita , sa le adun si sa le printez. numai ca imi da ceva erori si imi sare niste linii de program.eroarea apare in timpul rularii pas cu pasCan't find a source file at "../mingw/gccmain.c" Locate the file or edit the source lookup path to include its location.Ruleaza programul pana la capat, dar as vrea sa fie fara acea eroare

Link to comment

Foarte bine că l-ai făcut să meargă! :aplauze

 

Pune şi programul, ca să poată reproduce eroarea şi alţii.

Apasă butonul "Code" din editorul ElForum şi pune codul C între cuvintele dintre paranteze drepte. Trebuie să apară cam aşa:

 

#include <stdio.h>#include <stdlib.h>int main(void) {	puts("Hello World"); /* prints Hello World */	return EXIT_SUCCESS;}
Link to comment

Programul este acesta

#include <iostream>#include <stdio.h>using namespace std;int a = 0;int b = 4;int c;int main() {	c = a+b;	printf ("Hello, World! "); // prints Hello World	cout << c << endl;	return 0;}

Am testat atat printf cat si cout. fac acelasi lucru numai ca se defineste altfel ceea ce este de printat

Link to comment

Compilatorul tau e pentru C++. Nu-i nici o problema, este "compatibil" cu C (adica ar trebui sa compileze orice cod C scris civilizat/respectand ANSI-C), da' are sintaxa mai bogata.Nici asta nu ar trebui sa fie o problema, atata timp cat stii care parte a codului e C si care e C++. Altfel, la pic-uri cel putin, o sa ai oarece probleme, pentru ca eu inca nu stiu nici un compiler "C++ like".

Link to comment

GCC-ul este pentru amândouă, atât pentru C, cât şi pentru C++, depinde ce vrei.

 

În Eclipse, există posibilitatea de a alege între un proiect C sau un proiect C++.

Trebuie ales File -> New -> C Project, nu C++ Project.

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.Terms of Use si Guidelines