Sari la conținut
ELFORUM - Forumul electronistilor

nu stiu ce are PIC -ul meu


laStudiu

Postări Recomandate

Am facut un program in Asembler pt 16F871 si este cam lung (am foarte multe MACRO definitii). Vreau sa stiu cum as putea sa mut MACRO definitiile in alt fisier, ca eu am facut o incercare directa si mi-a dat la erori de te sperii.

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

Top autori în acest subiect

  • laStudiu

    36

  • cirip

    12

  • CristianC

    6

  • bld

    6

Top autori în acest subiect

Vreau sa stiu cum as putea sa mut MACRO definitiile in alt fisier, ca eu am facut o incercare directa si mi-a dat la erori de te sperii.

Din exprimare eu nu inteleg ce ai facut exact, dar ca sa aduni macrourile in alt fisier, apoi sa le aduci in sursa ta, foloseste directiva #include. De asemenea, nu uita ca MPLAB vrea ca macrourile sa fie definite inainte de a fi folosite. Cel mai indicat e sa faci includul la inceput, inaintea codului asm pr. zis, ca sa nu ai bataie de cap. Cirip
Link spre comentariu

Vreau sa stiu cum as putea sa mut MACRO definitiile in alt fisier, ca eu am facut o incercare directa si mi-a dat la erori de te sperii.

Din exprimare eu nu inteleg ce ai facut exact, dar ca sa aduni macrourile in alt fisier, apoi sa le aduci in sursa ta, foloseste directiva #include. De asemenea, nu uita ca MPLAB vrea ca macrourile sa fie definite inainte de a fi folosite. Cel mai indicat e sa faci includul la inceput, inaintea codului asm pr. zis, ca sa nu ai bataie de cap. Cirip
am facut macro1.asm si l-am inclus si in proiect la Source Files, am introdus linia "#include "macro1.asm" ... nu am erori dar totusi da:"Skipping link step. The project contains no linker script.BUILD FAILED: Sun Apr 23 17:35:44 2006"
Link spre comentariu

Cred ca e alta problema. Suna ca si cum nu ai setata calea catre fisierele .lkr. Mergi la Project - Select tool locations sau asa ceva. Cauta (nu stiu pe dinafara) unde se seteaza calea ptr fisierele .inc, .lkr si ce mai are el nevoie.Cirip

Link spre comentariu

Cu 1 singur fisier sursa in care am linia: "#include e:\[calea]\macro1.asm" merge.Eu sunt curios cum se poate face un proiect fara sa includ linia de mai sus ci sa adaug fisierul la fisierele sursa din proiect -- daca se poate sa fie doua sau mai multe fisiere *.asm in proiect.

Link spre comentariu

Daca e un fisier cu MACRO-uri si nu contine cod sursa, foloseste extensia .inc (ex: macro.inc). Acesta este echivalentul fisierelor .h din C

 

Ca sa poti folosi mai multe fisiere .asm trebuie sa incluzi in proiect si fisierul .lkr corespunzator PIC-ului tau. Fisierele .lkr le gasesti in directorul Microchip\MPASM Suite\LKR

Link spre comentariu

Chiar si pentru picclite exista manual de utilizare. Un mic extras:

 

3.2.4 Bit InstructionsWherever possible, HI-TECH C will attempt to use the PIC bit instructions. For example, whenusing a bitwise operator and a mask to alter a bit within an integral type, the compiler will check themask value to determine if a bit instruction can achieve the same functionality.unsigned int foo;foo |= 0x40;will produce the instruction:bsf _foo,6To set or clear individual bits within integral type, the following macros could be used:#define bitset(var,bitno) ((var) |= 1 < < (bitno))#define bitclr(var,bitno) ((var) &= ~(1 < < (bitno)))To perform the same operation as above, the bitset macro could be employed as follows:bitset(foo,6);
Link spre comentariu
  • 2 săptămâni mai târziu...

Se intampla ceva ciudat cu PIC-ul : dupa ce il pornesc functioneaza cam 2 secunde si apoi se stinge afisajul cu 8 segmente (porturile se reseteaza la valorile : RE0-3 = 4.5V, RA si RC = 0.06V). Daca trag la masa oricare din PGM, CLK sau DATA (RB7, RB6, RB3) iar functioneaza, pe urma daca le las libere mai functioneaza iar cam 2 s si se reseteaza. Cand masor tensiunea pe PGM, CLK sau DATA iar functioneaza.Ce are?

Link spre comentariu

Inainte cand functiona daca atingeam din gresala pinii ICSP se oprea. Acum in stare normala sta blocat, iar daca ating cu 1 deget masa si apoi ating ICSP functioneaza .

Link spre comentariu

Posibil sa ai in program bitii aia cofigurati ca intrari si in montaj sunt in aer. Ceea ce nu e bine (macar ca principiu). Probabil ca vreodata ai avut configurat si pull-up-urile, dar acum nu mai sunt. Activeaza-le si probabil se va potoli.

Link spre comentariu

S-ar putea sa ai activat LVP (Low voltage programming). Asta ar insemna ca atunci cand pinul RB3 nu e legat la masa PIC-ul intra in modul de programare. Asta ar explica blocajul.Dezactiveaza LVP din bitii de configuratie

Link spre comentariu

S-ar putea sa ai activat LVP . Asta ar insemna ca atunci cand pinul RB3 nu e legat la masa PIC-ul intra in modul de programare.

Eu folosesc LVP ( deci nu pot dezactiva LVP) si daca trag la masa RB7 sau RB6 merge (cu RB3 in aer).Nu am folosit deloc pana acum portul B in program, ca sa fie de la cod.Chestia asta a aparut dintr-o data, fara sa-l reprogramez, si mi-o luat ceva timp sa-mi dau seama ca-i legat de ICSP.
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