Sari la conținut
ELFORUM - Forumul electronistilor

Exercitii programare de la zero


Vizitator ciocanaru

Postări Recomandate

ATENTIE: se compileaza fara nici-o librarie a mikroC bifata. Functiile de initializare si citire a ADC sunt definite in program ...

 

Am folosit aceleasi nume pentru functiile ADC ca si cei de la mikroC. In acest fel, cand libraria mikroC pentru ADC este bifata se intampla ce ti s-a intamplat tie. Apar conflicte.

Probabil trebuia sa folosesc alte nume.

 

Asadar:

 

1. debifezi libraria ADC din Library manager al mikroC sau ...

2. schimbi numele functiilor (atat in declaratie cat si in definitie) ADC_init() si ADC_read(canal)

Editat de mars01
Link spre comentariu
 

Am modificat doua linii 

// void ADC_init() {void ADC_initt() {...// unsigned int ADC_read(unsigned short channel) {unsigned int ADC_readd(unsigned short channel) {

si nu mai am erori.

 

:aplauze  mars01, am debifat din librarie (daca nu casc ochii mari la ce scrii) si functioneaza cu codul scris de tine.

Un exercitiu nou pentru mine. Nu am folosit niciodata libraria pentru acest tip de exemplu.

Editat de Vizitator
Link spre comentariu

@mars01:

1. pasul urmator e sa folosesti niste define-uri si sa combinezi cele doo programe intr-unul singur. :da:Ceva de genul:

#define MIKROC //sau #define UCHIP#ifdef MIKROC //mikroc compiler#else //xc8 compiler #include <xc.h> #define _XTAL_FREQ 2000000 #pragma...#endif

2. si MPLABX te lasa sa setezi bitii de configurare "grafic". Dupa iti exporta configuratia sub forma de #pragma

3. xc are tipul de data "short long", pe 24 de biti. Cel putin asa se lauda in manual.

 

In rest, tine-o tot asa.

Link spre comentariu

Ups, daca continuati asa, cu XC8, am incurcat-o  :84. Eu am doar mikroC full. XC8 nu, pentru ca am un laptop mai "necajit".

Asa cum titlul topicului este "Exercitii de programare de la zero", se poate scrie coduri pentru orice compilator.

Dar daca se cere si acest compilator, o sa ma straduiesc sa mai renunt la unele programe, ca sa am si XC8, Dar nu stiu daca este functional si pe XP.

Editat de Vizitator
Link spre comentariu

Pai Liviu, directivele de preprocesor sunt cam "out of my scope".

In afara de #include si #define nu cred ca am sa discut despre altceva din categoria aceasta, pentru ca dupa parerea mea sunt "fineturi" si nu se preteaza aici (si asa am fortat putin lucrurile cu programul anterior).

 

MPLABX chiar imi place si intr-adevar bitii din CONFIG se pot genera grafic. Doar ca tot trebuie sa faci COPY-PASTE si apar in clar in program spre deosebire de mikroC.

 

**********************************************************

 

Programul anterior are mai multe elemente pe care nu le-am discutat. Include si functii care inlocuiesc pe cele mikroC, functiile ADC. Aceste doua functii: ADC_init() si ADC_read() formeaza impreuna un asa numit driver, mai exact cu aceste doua functii se poate folosi o componenta hardware a controlerului si anume convertorul analog - digital.

 

Cu aceste doua functii se poate face foarte usor un volt-ampermetru si multe altele (evident mai trebuie si procesate/afisate datele). Este un inceput. Probabil ca la un moment dat o sa facem din acestea doua functii .... o "library" pentru a le putea folosi cu usurinta.

 

LE:

Ups, daca continuati asa, cu XC8, am incurcat-o . Eu am doar mikroC full. XC8 nu, pentru ca am un laptop mai "necajit".

Asa cum titlul topicului este "Exercitii de programare de la zero", se poate scrie coduri pentru orice compilator.

Dar daca se cere si acest compilator, o sa ma straduiesc sa mai renunt la unele programe, ca sa am si XC8, Dar nu stiu daca este functional si pe XP.

 

Nu-ti fa griji. Am vrut doar sa dau un exemplu cu privire la cum se poate face un program incat sa fie usor de convertit pentru un alt compilator. Dupa cum vezi diferentele nu sunt foarte greu de "mestecat".

Cu un MPLAB mai vechi (poate nu MPLABX dar unul mai vechi sigur) si oricare versiune de compilator XC8 (chiar si ultima) poti sa te descurci in Win XP.

Ideea este ca atat MPLAB(X) cat si XC8 sunt free pentru orice dimensiune a codului singura diferenta este ca in varianta PRO (cea platita) codul este mai bine optimizat si intra mai mult in controller.

Dar pentru hobbysti care nu au cod-uri extrem de lungi si complexe, acest aspect este irelevant (poate doar daca te incapatanezi sa lucrezi cu controlere foarte limitate in memorie) si in plus se gasesc medicamente pentru aproape orice in zilele noastre.

Editat de mars01
Link spre comentariu

@va_cristi: Ha? :nas:

Programul anterior e in doo variante - pentru mikoc si pentru xc8. Eu doar glumeam despre combinarea celor doua programe intr-unul singur (si transformarea lui in ceva greu de tot de citit). :rade:

Tu nu trebuie sa schimbi nimic in calculatorul tau, activezi codul pentru compilatorul tau.

@mars01: glumeam, cum am zis si mai sus, combinatia transforma programul in ceva greu citibil.

A propos, voltampermetru pentru xc8 exista deja pe forum. :rade:

Aici.

Link spre comentariu

combinatia transforma programul in ceva greu citibil.

 

:secret :rade: true.

 

Am dat doar un exemplu  :limb:  lumea este foarte incantata de volt-ampermetre - powermetre - solar trackere - termometre etc

Ideea este insa ca fiecare sa ajunga sa si-l poata face el si sa numai depinda de "puteti sa imi modificati si mie hex-ul ala?". 

Editat de mars01
Link spre comentariu

si in plus se gasesc medicamente pentru aproape orice in zilele noastre.

Apropo, sotia mea este farmacista. Crezi ca o sa ma ajute ia sa gasesc medicamentul favorabil?  :rade:

Da, mai glumim si noi. Cica este sanatos sa razi cat mai mult in timpul zilei, Chiar mai inainte sotia i-mi citea ca, cica este bine sa razi de 3 ori cat ai rade de obicei intr-o zi.

Editat de Vizitator
Link spre comentariu

MPLABX chiar imi place si intr-adevar bitii din CONFIG se pot genera grafic. Doar ca tot trebuie sa faci COPY-PASTE si apar in clar in program spre deosebire de mikroC.

Am vrut sa raspund la asta aseara, da' m-am luat cu meciul.

Din punctul meu de vedere, faptul ca bitii de configurare sunt inclusi in cod (si in hex dupa compilare) este un lucru cat se poate de bun - scapi de batai de cap atunci cand "arzi" hexul din alt "mediu", ca nu mai trebuie sa ai grija sa setezi bitii in softul de programare. Asat daca stii cum trebuie setati.

Link spre comentariu

 

Aceasta este partea de configurare.

 

Programul se face asa (nu l-am verificat):

 

 

L-am verificat eu acum si e perfect functional ; multe multumiri Mars01 . Vad ca datoria mea catre dumneavoastra tot creste ; mi-ar placea sa o putem stinge cumva ...

Link spre comentariu

@iuli09: stai linistit, daca pui problema asa, eu inca am datorii imense fata de altii. Toti suntem datori cu ceva, cuiva.

 

@Liviu_M: sunt de acord cu tine. Si eu prefer tot asa, ii vezi in clar ... plus ca MPLABX face procesul usor (nu trebuie sa stai pentru aceasta sa cauti prin headere dupa cuvinte cheie). Oricum nu am de gand sa fac programe aici in XC8 pentru ca as complica inutil lucrurile pentru multi.

Exemplul oferit a fost folosit deoarece vreau sa punctez (cand am timp si ... chef) cateva chestii si diferente, cum ar fi faptul ca fiecare compilator are particularitati ale sale si moduri in care alege sa expuna programatorului, sa zicem bitii unui registru.

Editat de mars01
Link spre comentariu

Exemplul oferit a fost folosit deoarece vreau

Sper ca se intelege ca nu critic ce postezi, ci incerc sa completez/interpretez diversele informatii pe care le oferi.In rest, cum am mai zis-o, tine-o tot asa. :da
Link spre comentariu
Vizitator tnt10

@va_cristi, MPLABX cu toate acareturile merge f bine si pe XP 32biti, eu il folosesc pe un Celeron de jena cu 1GB RAM si nu sunt probleme. Doar cu scrierea programelor, dar asta nu mai e vina compului  :sparge:

Link spre comentariu

Eu am un AMD 2.1 cu 1Gb RAM, dar nu stiu daca sa mai incarc calculatorul si cu acesta, cu XC8. Acuma am trecut si pe Arduino. Am in calculator si CCS, mikroC full, mai vin si cu XC8, oare este necesar? Daca este, sincer,ma poate ajuta careva cu instalarea prin team viewer :d. Am incercat o data si nu am reusit.

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