|
Проблема с USART на ATmega8 |
|
|
|
May 24 2008, 15:22
|
Местный
  
Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228

|
У меня возникла проблема с USART'ом на моей ATmega8. К процессору подключена микросхема преобразования уровней(MAX232), к ней со стороны RS232 не подключено ничего. Когда я просто пытаюсь принять байт, всё работает нормально, байт не принемается, а вот когда я перед принятием байта посылаю байт через USART, то принимается какой то байт, чего быть не должно. Собственно, сам код: Код USART_Transmit: sbis UCSRA, UDRE rjmp USART_Transmit out UDR, r16 ret
USART_Receive: sbis UCSRA, RXC rjmp USART_Receive in r16, UDR ret ... rcall USART_Transmit rcall USART_Receive rcall TextOut ... А если закоментить строку: Код .. ;rcall USART_Transmit ... то всё работает правильно, текст не выводится. Я делал задержку между вызовами этих функций, ничего это не дало. Функции USART_Transmit/USART_Receive взяты из ДШ ATmega8.
--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
|
|
|
|
|
 |
Ответов
|
May 24 2008, 15:47
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
как вариант -сопля между ногами. Цитата Я делал задержку между вызовами этих функций, ничего это не дало а какой эффект ожидался? если байт пришёл в УАРТ, то он там будет, независимо от того, считаете вы его сразу или после паузы
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
May 24 2008, 16:46
|
Местный
  
Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228

|
Цитата как вариант -сопля между ногами. Я пробывал выключать приём при передачи и наоборот, ничего не поменялось. Цитата а какой эффект ожидался? если байт пришёл в УАРТ, то он там будет, независимо от того, считаете вы его сразу или после паузы Да просто так, может повезёт
--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
|
|
|
|
Guest_@Ark_*
|
May 24 2008, 18:48
|
Guests

|
Цитата(coolibin @ May 24 2008, 20:46)  Я пробывал выключать приём при передачи и наоборот, ничего не поменялось. Да просто так, может повезёт  Не исключены "наводки"... (схемку бы глянуть?). Для начала попробуйте "подтянуть" вход и выход USARTа к питанию (5В) резисторами 5-10К. ...
|
|
|
|
|
May 26 2008, 07:12
|
Местный
  
Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228

|
Может что то Вам подскажет следующая информация. Провёл два эксперимента. Первый, выключил USART, отправил байт, включил USART, принимаю байт, байт пришел! Почему так происходит, если по ходу при выключенном USART'е на ножке TxD ничего не генерируется? или я что то не так понял? это я всё по поводу наводок. Второй, отключил выводы TxD, RxD от схемы(просто подогнул ножки). Всё нормально! никакого "левого" байта не пришло!
--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
|
|
|
|
Сообщений в этой теме
coolibin Проблема с USART на ATmega8 May 24 2008, 15:22    MrYuran Цитата(coolibin @ May 26 2008, 10:12) Пер... May 26 2008, 07:23     coolibin Цитата(MrYuran @ May 26 2008, 10:23) байт... May 26 2008, 08:43      @Ark Цитата(coolibin @ May 26 2008, 12:43) А б... May 27 2008, 17:35       coolibin Цитата(@Ark @ May 27 2008, 20:35) Ув., co... May 28 2008, 09:48 radiohobbyt Цитата(coolibin @ May 24 2008, 19:22) У м... May 24 2008, 19:44 MrYuran Да.. Самого интересного как раз и нет... May 28 2008, 09:56 coolibin Цитата(MrYuran @ May 28 2008, 12:56) Да..... May 28 2008, 11:22 MrYuran Куда же, собственно, уходят линии от ног RxD и TxD... May 28 2008, 11:43 coolibin Цитата(MrYuran @ May 28 2008, 14:43) Куда... May 28 2008, 11:56 MrYuran А, так это K-Line чтоли...
А вы сами то ДШ смотрел... May 28 2008, 12:09 SSerge Так вот оно в чём дело!
L9637D это же ISO 9141... May 28 2008, 12:33 coolibin Заработало! Единственное, что не нравится, это... May 28 2008, 18:20
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|