Sari la conținut
ELFORUM - Forumul electronistilor

Configurare registri


catalin004

Postări Recomandate

Va salut....cum am intampinat o problema de curand, rog a se detalia modul de configurare a registrilor unui uC...m-am referit strict la PIC, limbaj C, insa nu este obligatorie...probabil ca sunt la fel ...nu ma intereseaza comenzile din librarii gen define sau TRISA.F1 = 1;

sau TRISA1_bit = 1;

Atasez mai jos cateva exemple, un uC oarecare ...de exemplu PortulA, sa fie definit ca intrare

Tabelul 3 : Registri asociati portului PORTA
image020.gif

 

Cum se va scrie in binar aceasta comanda?

Dar in HEX?

 

Astept cu nerabdare explicatiile dvs.multumesc

 

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

Top autori în acest subiect

  • catalin004

    12

  • nico_2010

    5

  • tic5

    5

  • Elison

    4

Zile populare

Top autori în acest subiect

Imagini postate

Care comanda?

L.E.: Adica ai vrea sa afli cum se scrie, de exemplu, in assembler comanda "TRISA.F1 = 1"?

Daca este asa atunci ai:

bsf 0x02, 0x85  // unde 0x85 = 85h = adresa registrului, iar 0x02 = 00000010 bitul setat (1) fiind cel aferent TRISA1
Link spre comentariu

Nu....as vrea sa stiu ce insemna:

PORTA = 0b00000000;//probabil ca aici RA este definit ca iesire....

 

si PORTA = 0x7F;

 

Exemplele sunt la intamplare...nu stiu ce definesc fiecare...

Editat de catalin004
Link spre comentariu

Registrul care defineste directia portului este TRIS (0 = intrare, 1 = iesire)

Valoarea atribuita portului (re)seteaza latch-urile, adica, in ipoteza in care portul X este iesire, starea lui poate fi 0 sau 1

In exemplul anterior am gresit (nu sunt familiarizat cu PIC-urile) si am facut corectia.

In exemplul tau:

PORTA= 0B0000000 -> daca portul este definit ca iesire (cu TRISA = 0b0001111), atunci nivelul logic pe cei 4 pini ai acestui port este "0"

PORTA =0x7F = 0111111 -> daca portul este definit ca iesire (cu TRISA = 0b0001111), atunci nivelul logic pe cei 4 pini ai acestui port este "1" (0111111 -> ce este inrosit nu are niciun efect si nici nu este recomandat, conform tabelului postat de tine)

Link spre comentariu

Repet am scris 0x7F fara nici o treaba, doar ca exemplu...Bun...

 

Ce insemna 0b din fata celor 8 biti?

 

Deci mai pe romaneste nu inteleg cum se aleg zerourile acelea...

Editat de catalin004
Link spre comentariu

Am inteles...nu stiam ce face 0b acela in fata....si cum este mai bine, sa se scrie in binar sau in hex?

banuiesc ca atunci cand vad:

 

0x6C este tot una cu 0b01101100; ?

 

Multumesc

Link spre comentariu

Da, este acelasi lucru.

Poate este mai bine sa folosesti sistemul binar, iti ofera o imagine mai clara asupra bitilor din registrul respectiv.


Pentru userul Elison: Corect, scuze, le-am incurcat un pic.

Link spre comentariu

Registrul care defineste directia portului este TRIS (0 = intrare, 1 = iesire)

Valoarea atribuita portului (re)seteaza latch-urile, adica, in ipoteza in care portul X este iesire, starea lui poate fi 0 sau 1

In exemplul anterior am gresit (nu sunt familiarizat cu PIC-urile) si am facut corectia.

In exemplul tau:

PORTA= 0B0000000 -> daca portul este definit ca iesire (cu TRISA = 0b0001111), atunci nivelul logic pe cei 4 pini ai acestui port este "0"

PORTA =0x7F = 0111111 -> daca portul este definit ca iesire (cu TRISA = 0b0001111), atunci nivelul logic pe cei 4 pini ai acestui port este "1" (0111111 -> ce este inrosit nu are niciun efect si nici nu este recomandat, conform tabelului postat de tine)

Aici nu este acelasi lucru.

Link spre comentariu

Ok...am inteles perfect...Acum avem mai jos un alt exemplu:PIC16F877

Pentru selectia pe RA3 a unei tensiuni de referinta pozitica si tensiune de referinta negativa ground-ul selectia registrilor va fi:

 

ADCON1 = 0b00000001; ?

 

 

 

 


Cand portul A este definit ca iesire valoarea lui TRISA este TRISA = 0b0000000. 1 este asociat ci I de la input si 0 cu O de la output.

Rog un exemplu....

post-218154-0-41307900-1511856948_thumb.png

Link spre comentariu

Cand portul A este definit ca iesire valoarea lui TRISA este TRISA = 0b0000000. 1 este asociat ci I de la input si 0 cu O de la output.

Deci cum se scrie pana la urma ca RA1 este ca intrare? codul exact....

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