Hallo,
Ich habe folgendes problem:
Dieses array soll nun mit bits gefüllt werden.
LSB ist irdata[0], bitnummer 0
MSB ist irdata[2], bitnummer 16
In einer ISR rauschen nun die bits der reihe nach rein und sollen in
das array gespeichert werden.
1 | uint8_t arr_num = (uint8_t)(bit_cnt/16);
|
2 | uint8_t bit_num = (uint8_t)(bit_cnt%16);
|
3 |
|
4 | if (x>5 && x<7) { // lo-bit
|
5 | irdata[arr_num] &= ~(1<<bit_num);
|
6 | } else
|
7 | if (x>0xc) { // hi-bit oder stop-bit
|
8 | irdata[arr_num] |= (1<<bit_num);
|
9 | }
|
10 |
|
11 | bit_cnt++;
|
Ist dieser weg so richtig ? Denn leider kommen dabei nicht die werte
herraus, die ich erwarte.
MfG
Andy