я выше уже высказывался, но повторю прямо кодом, компилятор конечно умён но по сравнению с писавшими на ассемблере - дурак дураком!
#include <avr\io.h>
//String received[1000];
uint8_t received[1000];
void setup() {
DDRB = (1 << PB1); //Setting direction of PB1
USICR = (1 << USIWM0); //Choosing SPI aka three wire mode
}
void loop() {
uint8_t i = 0;
while (1)
{
if ((USISR & (1 << USIOIF)) == 1) //Checking USI data counter overflow flag to detect the end of transmission every byte
{
received[i] = USIBR; //Reading received byte from USIBR buffer register
if (i < 1000)
i = i + 9;
else
i = 0;
USISR |= (1 << USIOIF); //Clearing counter overflow flag
}
}
}
Скетч использует 258 байт (3%) памяти устройства. Всего доступно 8192 байт.
Глобальные переменные используют 9 байт (1%) динамической памяти, оставляя 503 байт для локальных переменных. Максимум: 512 байт.