Jag har en RFID-läsare med clock-out och data-out. Jag har gjort en tillståndsmaskin så jag vet när jag har giltiga data att klocka in.
Det är 13 bytes (104 bitar) som jag vill spara i en array som sedan enkelt kan skickas ut på UART'en.
Vid varje "rising edge" på klockan så läser jag av data-out och får då en etta eller nolla. Men hur sparar jag bitarna i en byte-array på smidigast sätt?
uC'n är en AVR och språket C.
Spara bitar till buffer
-
- EF Sponsor
- Inlägg: 2109
- Blev medlem: 27 augusti 2005, 20:57:58
- Ort: Borlänge
Kod: Markera allt
typedef unsigned char byte;
byte Result[13];
byte Bit_Counter, Byte_Counter, Work;
for(Byte_Counter = 0; Cyte_Counter < sizeof(Result);Byte_Counter++) // Need all the bytes
{
for(Bit_Counter = 0;Bit_Counter < 8;Bit_Counter++) // Count all 8 bits in a byte
{
Work <<= 1; // Shift Work-variable up one notch
while(No_Bits incoming); // Wait for bits to come
if(Incoming_Bit) Work++; // If incoming bit is a one set LSB
}
Result[Byte_Counter] = Work; // Put in the byte in the buffer
}
... // Do something now that all bytes has come
-
- EF Sponsor
- Inlägg: 2109
- Blev medlem: 27 augusti 2005, 20:57:58
- Ort: Borlänge