Petrovich (07.11.2016 13:11, просмотров: 1) ответил SciFi на Чтобы было кошерно, нужно в комплекте с тестирующей программой.
Желательно чтобы каждый пропустил через свои тесты, ну у меня примитивно пробежаться и посмотреть сколько раз какой битик переключится uint8_t swit[ 8 ]; //количество переключений битов
uint16_t old; //предыдущее значение кода грея для поиска переключений
void main( void ) {
uint16_t cou;
uint8_t i;
for( cou=1;cou<256; cou++ )
{
i = ToGrayBalance[cou];
if( (((i & 0x80)==0)&&((old & 0x80)!=0)) ||
(((i & 0x80)!=0)&&((old & 0x80)==0)) ) {
swit[ 7 ]++;
}
if( (((i & 0x40)==0)&&((old & 0x40)!=0)) ||
(((i & 0x40)!=0)&&((old & 0x40)==0)) ) {
swit[ 6 ]++;
}
if( (((i & 0x20)==0)&&((old & 0x20)!=0)) ||
(((i & 0x20)!=0)&&((old & 0x20)==0)) ) {
swit[ 5 ]++;
}
if( (((i & 0x10)==0)&&((old & 0x10)!=0)) ||
(((i & 0x10)!=0)&&((old & 0x10)==0)) ) {
swit[ 4 ]++;
}
if( (((i & 0x08)==0)&&((old & 0x08)!=0)) ||
(((i & 0x08)!=0)&&((old & 0x08)==0)) ) {
swit[ 3 ]++;
}
if( (((i & 0x04)==0)&&((old & 0x04)!=0)) ||
(((i & 0x04)!=0)&&((old & 0x04)==0)) ) {
swit[ 2 ]++;
}
if( (((i & 0x02)==0)&&((old & 0x02)!=0)) ||
(((i & 0x02)!=0)&&((old & 0x02)==0)) ) {
swit[ 1 ]++;
}
if( (((i & 0x01)==0)&&((old & 0x01)!=0)) ||
(((i & 0x01)!=0)&&((old & 0x01)==0)) ) {
swit[ 0 ]++;
}
old = i;
}
// Вывод количества переключений битов
for( i=0; i<8; i++ )
{
printf("%d ", swit[i]);
}
}