Skip to content

Instantly share code, notes, and snippets.

@pancurster
Created July 18, 2012 08:33
Show Gist options
  • Save pancurster/3135061 to your computer and use it in GitHub Desktop.
Save pancurster/3135061 to your computer and use it in GitHub Desktop.
rozwiazanie pakowania bitow do bufora
uint b = 0;
uchar k = 0;
uchar dop = 0;
uchar last_reg = 0;
i = 0;
uchar reg = 0;
// Przepisywanie wartosci do rejestrow
/*
for (k=0; k<4; ++k) {
uchar pelne = roz[k] / 8;
uchar konc = roz[k] % 8;
// Dopelnanie bitami 'napoczetego' bajta
if (dop) {
b = marvell_read(0x1b, 0x10+reg);
setPRIOR(&b, dop, k);
marvell_write(0x1b, 0x10+reg, b);
++reg;
}
// Wypelnianie calego bajta
i = 0;
while (i < pelne) {
setPRIOR(&b, 8, k);
++reg;
++i;
marvell_write(0x1b, 0x10+reg, b);
b = 0;
}
// Dorzucanie pozostalych bajtow
setPRIOR(&b, konc, 2);
marvell_write(0x1b, 0x10+reg, b);
// last_reg = i;
dop = 8 - konc;
b = 0;
}
*/
uchar byte_c=8;
for (k=0; k<4; ++k) {
// roz[k]
// b |= k; roz[k]--; byte_c--;
while (roz[k]) {
b |= k;
byte_c--;
roz[k]--;
if (byte_c == 0) {
marvell_write(0x1b, 0x10+reg, b);
++reg;
b = 0;
byte_c = 8;
} else {
b = b << 2;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment