GOeie morgen,
Ik ben bezig met een i2c programma die als master gaat dienen voor een meetkaart. Hierbij werkt alles op bit niveau, ik heb een programma gemaakt dat de ascii waarde van A omzet naar binair. (tenminste dat denk ik)
als ik het uitvoer krijg ik de waarde van A als volgt:
01100001
dit is dus gewoon een array van bit[8].
Nu komt mijn probleem, ik wil het ook weer terug kunnen zetten, ik dacht das ik gewoon eeen for loop kon doen van 0 tot 8 en als er een 1 staat xor-en met 0x80 of anders met een 0, en vervolgens shiften.
echter krijg ik er wel een character uit, maar niet de gene die ik verwacht (de A dus).
hier is de code:
note: heb natuurlijk alleen de relevante dingen gepost.
Ik ben bezig met een i2c programma die als master gaat dienen voor een meetkaart. Hierbij werkt alles op bit niveau, ik heb een programma gemaakt dat de ascii waarde van A omzet naar binair. (tenminste dat denk ik)
als ik het uitvoer krijg ik de waarde van A als volgt:
01100001
dit is dus gewoon een array van bit[8].
Nu komt mijn probleem, ik wil het ook weer terug kunnen zetten, ik dacht das ik gewoon eeen for loop kon doen van 0 tot 8 en als er een 1 staat xor-en met 0x80 of anders met een 0, en vervolgens shiften.
echter krijg ik er wel een character uit, maar niet de gene die ik verwacht (de A dus).
hier is de code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| for (i = 0; i <= 8; i++)
{
if (b[i] == 0)
{ buf=0;
buf = (a ^ 0x00);
}
else
{
buf=0;
buf = (a ^ 0x80);
}
d = d + buf;
a = a >> 1;
} |
note: heb natuurlijk alleen de relevante dingen gepost.