Цитата(Pyku_He_oTTyda @ Jun 16 2007, 09:36)

После посылки байта остается спать 250мкс (LANC такой).
Так говорилось же уже сварганить передачу LANC на двух прерываниях.
По спаду старт-бита - прерывание запуска процесса, лучше всего - ICP. В этом прерывании инициализируем передачу команды в камеру (счётчик бит, ...) и делаем
OCR1A = ICR1 + длина_полутора_бит; /* таймер 1 бежит свободно */
В прерывании по OCR1A выталкиваем бит и делаем для следующего прерывания
OCR1A += длина_бита;
Итого процессор будет свободен кучу времени, иногда (не чаще раза на бит) совсем ненадолго отвлекаясь на LANC. Период бита 104мкс @ 9600, при 8 мегагерцах такта это больше 800 тактов, прерывание OCR1A уложится в несколько десятков, более 90% времени процессор гуляет.