Goofy 0 2 октября, 2009 Опубликовано 2 октября, 2009 · Жалоба Контроллер Mega8, нужет 2й UART Везде где приходилось встречать упоминание о софтовом УАРТе, старт бит ловят компаратором. Может потому что этот переферийный модуль более распостранён? Мне бы удобнее было ловить от внешнего прерывания: INT0, INT1. В чём я при этом буду неправ ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aner 4 2 октября, 2009 Опубликовано 2 октября, 2009 · Жалоба програмно второй UART ( нормальный не получить) это с ограничениями, компромисами и всеравно криво. у нас норально не получилось, по понятным причинам. Пришлось перейти на 162_ой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Goofy 0 2 октября, 2009 Опубликовано 2 октября, 2009 · Жалоба програмно второй UART ( нормальный не получить) это с ограничениями, компромисами и всеравно криво. у нас норально не получилось, по понятным причинам. Пришлось перейти на 162_ой. А полноценный не нужно. Нужно медленно писать, редко и медленно читать Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DogPawlowa 0 2 октября, 2009 Опубликовано 2 октября, 2009 · Жалоба Везде где приходилось встречать упоминание о софтовом УАРТе, старт бит ловят компаратором. Мало искали. //* EXT_INT0 - External Interrupt Routine 0 //* This routine is executed when a negative edge on the incoming serial //* signal is detected. It disables further external interrupts and enables //* timer interrupts (bit-timer) because the UART must now receive the //* incoming data. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rx3apf 0 2 октября, 2009 Опубликовано 2 октября, 2009 · Жалоба Контроллер Mega8, нужет 2й UART Везде где приходилось встречать упоминание о софтовом УАРТе, старт бит ловят компаратором. Аналоговым компаратором ? А нахрена ? Или речь о компараторах таймера ? Может потому что этот переферийный модуль более распостранён? Мне бы удобнее было ловить от внешнего прерывания: INT0, INT1. В чём я при этом буду неправ ? Если скорость не очень большая, то почему бы и нет. Я предпочитаю использовать ICP, а семплер по компаратору таймера. Фронт старт-бита ловится точно, а вот семплер будет гулять в зависимости от времени входа в прерывание (а если старт-бит ловить по INT, то и здесь будет гулять, что явно не на пользу надежности, даже если крутится цикл без прерываний и cli). В случае ICP на полтора бита можно при необходимости прикрыть прерывания... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Pasha 0 2 октября, 2009 Опубликовано 2 октября, 2009 · Жалоба До 19200 бод софтовый уарт не представляет сложностей, и уж тем более криво слепить его - это надо очень постараться. Старт-бит ловится интом, для приема можно использовать любое свободное прерывание таймера. Если же нужен дуплекс- тут конечно посложнее, надо еще одно прерывание от таймера и сделать так, чтобы оно было с наивысшим приоритетом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Petka 0 2 октября, 2009 Опубликовано 2 октября, 2009 · Жалоба Контроллер Mega8, нужет 2й UART Везде где приходилось встречать упоминание о софтовом УАРТе, старт бит ловят компаратором. Может потому что этот переферийный модуль более распостранён? Мне бы удобнее было ловить от внешнего прерывания: INT0, INT1. В чём я при этом буду неправ ? Делал на внешних прерываниях. Работает надёжно до 57600 включительно без какого-либо использования АСМа. Можно было и 115200, но надо было всё вылизывать. 9600 сделаете вообще легко. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Laptop 0 3 октября, 2009 Опубликовано 3 октября, 2009 · Жалоба До 19200 бод софтовый уарт не представляет сложностей, и уж тем более криво слепить его - это надо очень постараться. Старт-бит ловится интом, для приема можно использовать любое свободное прерывание таймера. Если же нужен дуплекс- тут конечно посложнее, надо еще одно прерывание от таймера и сделать так, чтобы оно было с наивысшим приоритетом. С передачей как раз намного проше. Делал для отладки передачу на выводе с output compare. Точность понятное дело отличная. Прием был не актуален, так что не писал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться