Estoy haciendo un programita que usa dispositivos I2C. Estuve leyendo sobre I2C y decidi escribir mi propio codigo y no usar uno ya hecho de CCS.
En concreto, quiero adaptar el codigo de control...
explico rapidamente, los dispositivos I2C necesitan un byte de control para poder identificar si la trama que viene a continuacion esta dirigida a ellos o no.
por ejemplo, para manejar una memoria 1024K el byte de control tiene que comenzar por "1010" que es lo que identifica a las memorias i2c, el siguiente bit que especifica a cual de los 2 bancos de memoria se accedera, luego 2 bits para la direccion del dispositivo, y por ultimo un bit que indica si se leera (1) o escribira (0) en la memoria. entonces un byte de control "10101001" indica que esta dirigido a una
memoria i2c, con
direccion "00", y que se
leera en el
segundo banco de memoria.
lo que quiero hacer es algo asi como lo que se hace para manejar los pines del micro como memoria, es decir, si el puerto B es un byte en la direccion 0x06, por ejemplo declarar una variable como #bit y asignarla a 0x06.1 (PIN_B1)
lo que quiero es declarar un byte y poder modificar los bits de manera independiente. asi podria declarar un controlbyte y segun a quien vaya dirigido modificarle solo lo necesario, pero con nombres significativos.
algo asi como:
#byte ControlByte
Device = ControlByte.0
Bank = ControlByte.4
Address = ControlByte.5
RW = ControlByte.7
asi luego me quedaria un codigo bastante mas comprensible y facil de modificar
no se si deberia buscar algo de memoria libre en cuadro de organizacion de memoria del micro y declarar una variable como #byte en esa direccion (valdria cualquier direccion libre?), o tal vez crear una estructura... que seria mas eficiente?
gracias, espero que se haya entendido
salu2