- Código: Selecionar todos
void le_byte2() {
for (i = 1; i <= 8; i++) // read the msb first
{
SCL = 1;
buffer[i]=SDA; // subistituir aqui por operação de deslocamento de bit, (salvar em uma variavel char dado por exemplo.
SCL = 0;
}
Atualmente uso este recurso que é um pouco burro , gostaria de salvar diretamente em uma variável qualquer, por exemplo em uma char c; sei que da para fazer isso usando uma operação de deslocamento de bits, pois faço assim para escrever, so não sei como fazer o caminho inverso .
Por favor me ajudem, desde já eu agradeço!
veja como eu faço para gravar.
- Código: Selecionar todos
void I2C_write(unsigned char d) /* ----------------------------- */
{
unsigned char k;
SCL = 0;
for (k= 1; k <= 8; k++)
{
SDA = (d >> 7);
SCL = 1;
d = d << 1; /* increase scl high time */
SCL = 0;
}
SDA = 1; /* Release the sda line */
SCL = 0;
SCL = 1;
}