Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
С прошлой страницы про UART2 и UART3.
Отправлено
Oleg_IT
(188.123.240.44)
23 февраля 2011, г. 12:11
Ставил в регистрах PRR0 и PRR1 соответствующие биты и в 0 и в 1. Всё одно UART0, UART1 работают, UART2, UART3 нет.
Составить ответ
|
Вернуться на конференцию
Ответы
Может кто поделится правильной работой с UART именно на ATMega2560. С другими МК проблем нет.
-
Oleg_IT
(23.02.2011, 17:03:51
188.123.240.44
,
пустое
)
Там странные вещи написаны. В чём была задумка для меня не очевидно. Вы бы хоть дали определение Buf. И сказали бы какие именно "прерывания не идут". TX сразу самозапрещается, RX нигде не описан, UDRE самозапрещается по условию, которое вы нам не показываете (размер Buf и механизм его перезапуска)
-
Юрий_СВ
(23.02.2011, 13:57:54
213.5.199.158
, 515 байт)
Спасибо что отозвались.
-
Oleg_IT
(23.02.2011, 14:20:4
188.123.240.44
, 1342 байт)
Ответ:
-
Юрий_СВ
(23.02.2011, 14:46:25
213.5.199.158
, 853 байт)
«Если считает, что у вас всё безупречно» упаси боже от такой глупости:) Я только не пойму где я не прав. С остальными Вашими рекомендациями разбираюсь.
-
Oleg_IT
(23.02.2011, 16:08:15
188.123.240.44
,
пустое
)
Ну, а на счёт проверки наличия прерываний - используйте аппаратную ногу порта, который ВООБЩЕ не управляется из прерываний.
-
Юрий_СВ
(23.02.2011, 14:51:2
217.12.195.250
, 90 байт)
Доработал так
-
Oleg_IT
(23.02.2011, 15:42:47
188.123.240.44
, 2272 байт)
А что, если FlagTx_3 изначально = 2 ? И ?
-
Юрий_СВ
(23.02.2011, 16:22:54
213.5.199.158
, 888 байт)
Ответ:
-
Oleg_IT
(23.02.2011, 16:57:52
188.123.240.44
, 793 байт)
Ответ:
-
Юрий_СВ
(23.02.2011, 17:28:13
213.5.199.158
, 1250 байт)
Ответ:
-
Oleg_IT
(23.02.2011, 18:02:58
188.123.240.44
, 448 байт)
Ответ:
-
Юрий_СВ
(23.02.2011, 18:33:53
213.5.199.158
, 364 байт)
Да, мысль понял. Учту.
-
Oleg_IT
(23.02.2011, 18:47:4
188.123.240.44
,
пустое
)
Ты смотришь отладку в Сишном окне или в ассемблерном?->
-
Дастун
(23.02.2011, 18:32:27
95.72.144.136
,
пустое
,
ссылка
)
И так и так.
-
Oleg_IT
(23.02.2011, 18:53:6
188.123.240.44
,
пустое
)
Проблему наблюдаю. Ты отлаживаешь только в симуляторе или камень есть?
-
Дастун
(23.02.2011, 19:44:10
95.72.144.136
,
пустое
)
Поробовал в симуляторе - у меня тоже не получилось :))). В ассемблере ничего плохого не нашёл. Странность в том, что в последних Errata о проблемме ни слова, а старый AVR-Studio "знает, что работать не должно... :))"
-
Юрий_СВ
(23.02.2011, 21:46:35
213.5.199.158
, 193 байт)
Так получается это не только эмулятор, но и МК глючный. У меня предыдущая версия прибора на ATMega128, сравнивал значение регистров перед вызовом прерываний как внутри 2560 так и с 128-м. У меня один к одному. Поковыряюсь на сайте Atmel.
-
Oleg_IT
(23.02.2011, 22:10:13
188.123.240.44
,
пустое
)
МК у меня нет,(+)
-
Дастун
(23.02.2011, 22:14:21
95.72.144.136
, 157 байт)
Спасибо, что вообще время уделил. Одна надежда на авторов, т.е.. Atmel.
-
Oleg_IT
(23.02.2011, 22:19:45
188.123.240.44
,
пустое
)
Удачи!
-
Дастун
(23.02.2011, 22:28:10
95.72.144.136
,
пустое
)
Да, плата есть. Проблема одна.
-
Oleg_IT
(23.02.2011, 20:06:19
188.123.240.44
,
пустое
)
Уточню: ты в микросхему пробовал заливать? То же самое?
-
Дастун
(23.02.2011, 21:50:16
95.72.144.136
,
пустое
)
Да, заливал, все новые идеи в МК. Но результат тот же, что и в эмуляторе.
-
Oleg_IT
(23.02.2011, 22:12:25
188.123.240.44
,
пустое
)
Блин, ну нельзя же так....Громоздишь какие-то конструкции, а нам их разбирать... Я два слова-то связать не могу, а тут такое!(+)
-
Дастун
(23.02.2011, 15:49:6
95.72.144.136
, 197 байт)
Прошу прощение за громоздкость:) Хочу чтобы все четыре UARTA работали одинаково при одинаковой инициализации. Сейчас этого нет в UART0 и UART1 прерывания есть и каналы работают, UART2 и UART3 прерываний нет и соответственно они не работают.
-
Oleg_IT
(23.02.2011, 15:58:35
188.123.240.44
,
пустое
)
Давай попробуем. 1. Исправь косяк с флагами прерываний.
-
Дастун
(23.02.2011, 16:04:0
95.72.144.136
,
пустое
)
Добавил UCSR0A &=~ (1 << UDRE0); в начало обработчика USART0_UDRE_vect и UCSR0A &=~ (1 << TXC0); в USART0_TX_vect. Соответственно в 1, 2, 3. Ваши рекомендации понял? Картина не изменилась. Я правильно
-
Oleg_IT
(23.02.2011, 16:21:41
188.123.240.44
,
пустое
)
Так, ты симулишь в AVRStudio? Я ваще не вижу в симуляторе ни USART2, ни USART3!
-
Дастун
(23.02.2011, 18:02:38
95.72.144.136
,
пустое
)
Жду результата
-
Oleg_IT
(23.02.2011, 18:08:36
188.123.240.44
,
пустое
)
Ну разберись с флагами, блин!(+)
-
Дастун
(23.02.2011, 18:30:18
95.72.144.136
, 206 байт)
Ну правильно, я сразу запускаю все StartTx_n. Но прерывания UDREn торчат только от канала 0 и 1.
-
Oleg_IT
(23.02.2011, 18:36:46
188.123.240.44
,
пустое
)
Шо за хрень? У меня во всех усартах UDRE торчат(+).
-
Дастун
(23.02.2011, 18:45:20
95.72.144.136
, 390 байт)
«Шо за хрень? У меня во всех усартах UDRE торчат» Шо у меня за хрень??? Можно текущий код посмотреть. С количеством байт я потом разберусь. Мне б хоть один на выходе получить.
-
Oleg_IT
(23.02.2011, 18:52:2
188.123.240.44
,
пустое
)
Отставить, увидел...
-
Дастун
(23.02.2011, 18:05:13
95.72.144.136
,
пустое
)
ссылка
-
Дастун
(23.02.2011, 15:49:48
95.72.144.136
,
пустое
,
ссылка
)
Несколько замечаний/вопросов(+):
-
Дастун
(23.02.2011, 14:42:33
95.72.144.136
, 262 байт)
Ответ:
-
Юрий_СВ
(23.02.2011, 14:54:30
217.12.195.250
, 160 байт)
Пробовал и наоборот, ни чего не меняется. Это я срисовал с примера работы UART
-
Oleg_IT
(23.02.2011, 15:14:5
188.123.240.44
,
пустое
)
вот только.... то, что сначала ложит байт в UDR, а ПОТОМ разрешает передатчик - это плохо! Не факт, что запуститься!
-
Юрий_СВ
(23.02.2011, 14:56:22
213.5.199.158
,
пустое
)
(+)
-
Дастун
(23.02.2011, 15:14:9
95.72.144.136
, 264 байт)
Все флаги прерываний сбрасываются автоматически при вызове соответствующего обработчика прерывания (из даташита).
-
Oleg_IT
(23.02.2011, 15:52:33
188.123.240.44
,
пустое
)
Да хер там! Обрабатываешь UDRE - сбрасываетя UDRE. Обрабатываешь TXC - сбрасываетя TXC. Но НЕ ВСЕ ВМЕСЕ!
-
Дастун
(23.02.2011, 15:55:15
95.72.144.136
,
пустое
)
А я и не утверждаю, что все сразу. Хоть бы один обработчик вызвался, а там и флажки можно сбросить вручную.
-
Oleg_IT
(23.02.2011, 16:01:54
188.123.240.44
,
пустое
)
:)) всё верно, только пример не мой (Юрий_СВ), а его (Oleg_IT)
-
Юрий_СВ
(23.02.2011, 15:18:24
217.12.195.250
,
пустое
)
Промахнулся, виноват.. Ык.... С Праздником!
-
Дастун
(23.02.2011, 15:20:27
95.72.144.136
,
пустое
)
Да, С ПРАЗДНИКОМ!!!!! С этой проблемой....
-
Oleg_IT
(23.02.2011, 15:45:46
188.123.240.44
,
пустое
)
:) Взаимно!
-
Юрий_СВ
(23.02.2011, 15:42:10
213.5.199.158
,
пустое
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 34:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru