Cerco di spiegare il concetto..spero si capisca
I valori che si possono attribuire al PCF variano da 0x00 a 0xff, questo range contiene tutte le combinazioni possibili e immaginabili gestibili dagli 8 bit.
Calcolarlo ? molto semplice basta solo capire il meccanismo. Esempi:
1. Se vogliamo impostare la prima uscita a 1 e tutte le altre a 0, ovvero 10000000, dobbiamo settare 0x01
2. Se vogliamo impostare la seconda uscita a 1 e tutte le altre a 0, ovvero 01000000, dobbiamo settare 0x02
3. Se vogliamo impostare la terza uscita a 1 e tutte le altre a 0, ovvero 00100000, dobbiamo settare 0x04
La chiave del sistema sta nel convertire la maschera binaria in esadecimale invertendo la maschera stessa nel caso in cui i secondi 4 bit siano uguali a 0000..ovvero se vogliamo impostare questa maschera: 01010000, prendiamo i primi 4 bit |0101| e li invertiamo |1010| (ho ignorato gli altri 4 bit perch? valgono 0000), li trasformiamo in esadecimale e avremo 0x0a
Se invece nella maschera i primi 4 bit sono uguali a 0000, dobbiamo invertire i secondi 4 bit e aggiungere 0000..ovvero se vogliamo impostare questa maschera: 00000001, prendiamo i secondi 4 bit |0001| e li invertiamo |1000| e aggiungiamo 0000, li trasformiamo in esadeciamle e avremo 0x80
Spero di essere stato chiaro
Una piccola carrellata di esempi in chiusura:
10000000 0x01
01000000 0x02
11000000 0x03
00100000 0x04
10100000 0x05
01100000 0x06
11100000 0x07
00010000 0x08
10010000 0x09
01010000 0x0a
.............
00000001 0x80
.............
10000001 0x81
.............
10101010 0xaa
.............
11111111 0xff