Вот тут не понял, в чем будут ограничены действия
1. Откройте редактор с кодом, нажмите CTRL+F
2. В поле поиска вбейте "odin", в поле замены - "44"
3. Нажмите "Replace all"
4. Вы получили абсолютно идентичный код тому, который был.
Вот тут не понял, в чем будут ограничены действия
ну Вы расточительно к памяти AVR относитесь.
Код: Выделить всё
unsigned char DisplayArray[16]{
0b0000000,
0b0000000,
0b0000000,
0b0001000, //тут то, что зажигать хотим.
0b0000000,
0b0000000,
0b0000000,
0b0000000,
0b0000000,
0b0000000,
0b0000000,
0b0000000,
0b0000000,
0b0000000,
0b0000000,
0b0000000
}
............
............
unsigned char i, j;
for(i=0;i<sizeof(DisplayArray);i++){
unsigned char tmp=DisplayArray[i];
for(j=0;j<8;j++){
if(tmp&0x01) Display(j,i);
tmp>>=1;
}
}

Во во именно это я и хотел написать, просто с телефона не очень удобно.Аlex писал(а):Тогда уж не 32, а 16
В INT'е же 16 бит, а не 32
0867532 писал(а):Не, секунду, мне надо ещё в массив записывать.
Типа DisplayArray[2][4]==1
Блин , переписать функцию на вывод целой строки не судьба?0867532 писал(а):Я не понял что вы про строку написали,
0867532 писал(а):
но про сложение массивов, м! это интересно...
0867532 писал(а):
А зачем тогда форумы нужны? -Чтоб одни спрашивали а другие отвечали, или обсуждали что-то.
Во всяком случае мне так кажется.
Код: Выделить всё
#define reset PORTD.7 // MR
#define SCK PORTD.6 // SHCP
#define ss PORTD.5 // STCP
#define MOSI PORTD.4 // DS
void send_byte_74595 (unsigned char data){ unsigned char i;
ss = 1;
for (i = 0; i < 24; i++) {
if ( (data>>i)&1) MOSI = 1;
else MOSI = 0;
#asm("nop")
SCK = 1;
#asm("nop")
SCK = 0;
#asm("nop")
}
ss = 0;
}