Vizitator Chip Postat Martie 8, 2009 Partajează Postat Martie 8, 2009 pana acu am folosit PIC Simulator IDE cu compilator basic ca sa joc cu leduri si picuri, insa acum am trecut la mikro C si am o problema.in Pic simulator PORTA.i imi accesa bitul i din portul a, sau compilatorul stia ca RB5 este bitul 5 din portul B.Acest lucru nu se mai intampla insa in mikro C. Cum pot sa citesc doar un bit dintr-un port? sau sa il modific daca e de iesire? PORTA.i nu merge, si nici notatia RA1 se pare ca o cunoaste. Link spre comentariu
cirip Postat Martie 8, 2009 Partajează Postat Martie 8, 2009 Cum pot sa citesc doar un bit dintr-un port? sau sa il modific daca e de iesire? Nu cunosc detalii ale limbajului si as fi surprins sa nu existe o modalitate de acces pe bit, dar daca totusi modalitatea asta nu exista, poti face asa: Citesti portul intreg (8 biti) intr-o locatie temporara, apoi faci AND cu o masca (o valoare pe 8 biti). Valoarea mastii va contine 1 pe pozitia bitului pe care vrei sa il testezi. Daca rezultatul ANDului este 0, atunci bitul testat a fost zero. Daca rezultatul nu este zero, atunci bitul a fost 1.Ca sa fortezi o anumita valoare pe un bit se poate face asa: Citesti portul intr-o locatie temporara. Generezi o masca in functie de ce vrei sa faci. Daca vrei sa setezi un bit al portului, atunci pui 1 pe pozitia bitului ala si zero in rest, apoi faci OR cu locatia temporara si o scrii la loc in port. Daca vrei sa scrii 0, faci 0 pe pozitia bitului pe care vrei sa-l faci 0 si 1 in rest. Faci AND cu locatia temporara si apoi scrii la loc portul.Poate ca pare complicat, dar in realitate e f simplu. Justificarea secventei operatiilor rezulta din tabelele de adevar ale functiilor AND si OR.Cirip Link spre comentariu
Vizitator Chip Postat Martie 8, 2009 Partajează Postat Martie 8, 2009 M-am gandit si eu la mascarea bitilor, dar caut varianta directa. Link spre comentariu
cirip Postat Martie 9, 2009 Partajează Postat Martie 9, 2009 M-ai facut sa ma uit in manual. M-as fi si mirat ca limbajul sa nu permita accesul individual al bitilor. La pagina 35 din manual ai sectiunea "Accessing Individual Bits". Se foloseste numele variabilei (portul in cazu tau), selectorul de membru (.), urmat de identificatorul F0...F7Cirip Link spre comentariu
Postări Recomandate
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 contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum