Подскажите, плз, как приспособить PIC16F876 под прием этого долбанного DMX512... Не удается никак принять второй байт в пачке. Использую встроенный USART, но у меня постоянно устанавливается ошибка приема FERR. Может что-то натупил с алгоритмом:
0. сбрасываю CREN и SPEN в RCSTA
1. жду "0"
2. если длина этого "0" меньше ~88us, перехожу к 1.
3. жду "1"
4. устанавливаю SPEN и CREN в RCSTA
5. жду прихода байта по флагу RCIF в PIR1
6. если была ошибка при приеме (установлены: бит FERR или OERR в RCSTA), то вызываю RX_ERR и иду к 0.
7. если байт в RCREG != 0, иду к 5.
8. жду прихода второго байта по флагу RCIF в PIR1
9. если была ошибка при приеме (установлены: бит FERR или OERR в RCSTA), то вызываю RX_ERR и иду к 0.
10. посылаю байт из RCREG в PORTB на ЦАП
11. иду к 0.
Функция RX_ERR стирает RCSTA и мигает диодом на плате...
После запуска диод постоянно мигает а на входах ЦАПа нули...
Короче, если кто-нибудь знает нормально-работающий код для приема DMX512 -- напишите!!!