Цитата(defunct @ Feb 27 2006, 12:05)

Цитата(d71 @ Feb 27 2006, 06:55)

прикрепляю то над чем тупил
скомпилированный код будет более оптимальным если написать так:
Код
[u]signed[/u] char a;
...
a=CharString(str_out[i]);
for (int y=0;y<8;y++){
isp_ds= a < 0;
isp_clk=1;
isp_clk=0;
a <<= 1;
}
можно и вот так:
Код
#define SSTB PB4// строб записи в параллельный регистр вывода 74595
#define SDATA PB5// последовательные данные
#define SCLK PB7// синхронизация для последовательных данных
........
char count = 0x08; // счетчик выводимых бит
do
{ // формируем бит данных для вывода
PORTB &= ~(1 << SDATA); // обнуляем порт данных
if(data & (1 << 7)) // если бит 7 байта данных установлен , то устанавливаем порт данных
{ PORTB |= (1 << SDATA);
}
data <<= 1; // сдвигаем байт данных
// формируем строб записи в последовательный регистр 74595
PORTB &= ~(1 << SCLK);
PORTB |= (1 << SCLK);
}
while(--count);