Sari la conținut
ELFORUM - Forumul electronistilor

Probleme de incepatori


Postări Recomandate

Nu, astea-s maximele la care inca nu se arde. Daca ai sa citesti nota, ai sa vezi ca functionarea la valorile astea nu e nici garantata nici recomandata (This is a stress rating only and functional operation at these conditions is not implied). Limitele la care e garantat sa functioneze le iei din tabelele cu valori "operationale".

Link spre comentariu
  • 3 luni mai târziu...

Foloisesti mastile si operatiile pe bit.

Ca sa faci un bit 0 folosesti & (AND), ca sa-l faci 1 folosesta | (OR).

Revenind la cei 3 biti 0, citesti portul si-l rescrii cu valoarea citita si modificata. De exemplu, ca sa faci b0..b2 0 si sa-i lasi pe ceilalti nemodificati

PORTx = PORTx & 0xF8;
Cum scrii mastile (binar, hexa sau zecimal) e total neimportant. Cum ti se pare cel mai usor de interpretat.
Link spre comentariu

Dupa cum apare mai sus , se rescrie tot registrul , facind & intre initial si F8 [ 11111000].Adica metoda ar fi ca ce vrem sa nu stergem sa fie 1 si ce vrem sa stergem sa fie 0 ?

Exact. Asta cand vrei sa faci biti 0. Cand vrei sa faci (anumiti) biti 1, citesti valoarea existenta si ii aplici un OR cu o masca in care bitii care nu trebuie schimbati sunt 0 si cei care trebuie setati sunt 1:Biti resetati - exmplul de mai sus, aceeasi biti setati
PORTx = PORTx | 0x07; //bitii b2..b0 sunt 1

Am gasit varianta pentru un bit , aici 0. PORTB &= ~(1<

Pai ori folosesti comanda de mai sus de 3 ori (ineficient),
PORTB &= ~(1<<PB0);PORTB &= ~(1<<PB2);PORTB &= ~(1<<PB3);
ori folosesti masca 0x0D. Da' daca tot folosesti masca, folosesti direct metoda pe care am zis-o anterior.
Link spre comentariu

Dupa cum apare mai sus , se rescrie tot registrul , facind & intre initial si F8 [ 11111000].Adica metoda ar fi ca ce vrem sa nu stergem sa fie 1 si ce vrem sa stergem sa fie 0 ?(...)

Nu, ce vrei sa nu stergi ramane (se rescrie) cum a fost si ce vrei sa stergi se face zero. Adica daca inainte aveai b6 in zero, el ramane in zero, nu se pune in 1.PS Nu ma corecteaza nimeni ca in postul meu anterior am scris DDRx=0x11? Scuze, nu am fost atent, e 0xFF, pt ca am facut referire la portul intreg. :jytuiyu
Link spre comentariu

Dupa cum apare mai sus , se rescrie tot registrul , facind & intre initial si F8 [ 11111000].Adica metoda ar fi ca ce vrem sa nu stergem sa fie 1 si ce vrem sa stergem sa fie 0 ?(...)

Nu
Ba da, pentru ca e vorba de bitii din masca. Daca vrei ca un bit din port sa ramana neschimbat in urma unui AND, trebuie ca in masca sa ai 1 pe pozitia corespunzatoare.
Link spre comentariu
  • 1 lună mai târziu...
Vizitator vasilev123

Salutare,am si eu urmatoarea dilema: cum fac "baietii" isteti de reusesc sa scoata un dump(integral si care poate fi folosit) dintr-un Atmega162 protejat la citire?Evident,ca nu ma astept sa mi se impartaseasca "metoda" in sine ci doar o idee. Se poate "decripta" dump-ul citit dintr-un microcontroler protejat la citire sau se folosesc montaje de genul FUSEBIT DOCTOR?Fusebit Doctor este doar un exemplu, mi s-a explicat ce face in topicul dedicat.

Link spre comentariu

Salutare.Vreau sa fac un SMt si un Volt-Ampermetru fiecare cu cate un Atmega,dar ambele sa fie legate la acelasi LCD, am mai facut aceasta configuratie, si ca sa comut de pe smt pe volt-amper, taiam alimentarea unuia din atmeluri, insa acum nu mai vreau sa tai alimentarea deoarece atmega de la volt-ampermetru o sa comande si un releu, si daca tai alimentarea releul o sa decupleze si nu e ok.Unde as putea pune un Switch care sa comute intre cele doua module?Am simulat in Proteus, am pus intre traseele care duc la "E" de la display, dar nu functioneaza, afiseaza tot felu de caractere.Atasez o poza cum am conectat atmelurile la display.

post-20529-139829693178_thumb.png

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