Neway Inserito: 9 agosto 2011 Segnala Share Inserito: 9 agosto 2011 (modificato) Sono un neofita che programma PIC in C18 e mi ritrovo a dover inviare tramite l'interfaccia SPI un byte composto da due bit singoli più un pezzo di un altro byte, così:i primi due bit blu vanno scartati perchè privi di informazioni.Ho cercato di capire come comporlo con le operazioni di bitwise, ma da autodidatta quale sono non sono riuscito nell'impresa. potreste darmi una mano?Grazie mille! Modificato: 9 agosto 2011 da Neway Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 9 agosto 2011 Segnala Share Inserita: 9 agosto 2011 (modificato) I 2 bit singoli da dove li prelevi e i che posizione sono?Per comporre il byte è semplice.Supponi di chiamare A il byte che contiene i 2 bit singoli nella posizione 0 e 1; èer portarli dalla posizione 1,0 alla 7,6 usi un loopdi shift a sx, simile aquesto: for (i=1;i<=6;++i) A = << A; poi pulisci i 2 bits di B e sommi A = A && C0h; B = B && 3Fh; C = A || B; Dovresti verificare se nelle built in functions del tuo compilatore esistono funzioni che possono semplificare; p.e. nel compilatore CSC esiste la funzione shift_left (address, bytes, value). Modificato: 9 agosto 2011 da Livio Orsini Link al commento Condividi su altri siti More sharing options...
Neway Inserita: 9 agosto 2011 Autore Segnala Share Inserita: 9 agosto 2011 Grazie Livio, gentilissimo come sempre, però ho bisogno di ulteriori chiarimenti.Per la parte relativa al bit shift ho capito. Nel mio caso i due primi bit li imposto a piacere, quindi posso creare un byte che li abbia direttamente all'inizio.Ho invece bisogno di maggiori lumi per la seconda parte. Per favore conferma che i miei commenti siano esatti A = A && C0h; //Pulisce i primi 6 bit di A B = B && 3Fh; //Pulisce gli ultimi due bit di B C = A || B; //Unisce i due byteInoltre bisogna usare gli operatori & e | , non && e || che sono gli operatori logici, giusto?Grazie ancora. Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora