Odp 1: użyj timerów ostatecznie millis, przerwań, można użyć RTOS ale to nie na AVR z małą ilością RAM (na Mega1284 jest ok).
Odp 2: chodzi o przerwy pomiędzy bajtami? Jeśli tak użyj przerwań co z tym idzie, nie możesz nigdzie w programie ich blokować (np Arduinowe libs 1-Wire) no i na AVR, pewnie więcej jak jakieś 1..2Mb/s nie wyciągniesz. Można użyć USART, wyciągniesz 3 może i więcej Mb/s ale AVR są ubogie w USART (najczęściej 1, czasem 2, 4 to szczyt szczytów).
Nie wiem ile danych chcesz przesyłać ale trzeba je zbuforować w RAM i małe AVR mogą się nie nadawać.
Zasadniczo, do szybkiej transmisji dużej ilości danych trzeba wybrać uC z DMA i odpowiednią ilością RAM. Może to być Xmega (ma DMA ale RAM już niekoniecznie, no i tanie te uC nie są a ograniczenia 8-bit odczuwalne), może być ARM.
Odp 2: chodzi o przerwy pomiędzy bajtami? Jeśli tak użyj przerwań co z tym idzie, nie możesz nigdzie w programie ich blokować (np Arduinowe libs 1-Wire) no i na AVR, pewnie więcej jak jakieś 1..2Mb/s nie wyciągniesz. Można użyć USART, wyciągniesz 3 może i więcej Mb/s ale AVR są ubogie w USART (najczęściej 1, czasem 2, 4 to szczyt szczytów).
Nie wiem ile danych chcesz przesyłać ale trzeba je zbuforować w RAM i małe AVR mogą się nie nadawać.
Zasadniczo, do szybkiej transmisji dużej ilości danych trzeba wybrać uC z DMA i odpowiednią ilością RAM. Może to być Xmega (ma DMA ale RAM już niekoniecznie, no i tanie te uC nie są a ograniczenia 8-bit odczuwalne), może być ARM.