реклама на сайте
подробности

 
 
> USART ATmega48, не передает, до принятия символа
Alt.F4
сообщение Sep 24 2010, 12:26
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 468
Регистрация: 28-03-10
Из: Беларусь
Пользователь №: 56 256



МК не хочет осуществлять передачу до принятия любого символа. Причем не зависает, просто проходит подпрограмму передачи, и работает дальше.
Но если сперва принять хотя бы один символ, то передача работает.
Код
    clr        temp            ;
    sts        UCSR0B,temp        ;
    ldi        temp,0b00000110    ; 8бит, 1стоповый бит, нет четности, асинхронный режим
    sts        UCSR0C,temp        ;
    ldi        temp,0x80        ; сброс
    sts        CLKPR,temp        ; делителя
    ldi        temp,0x00        ; тактовой
    sts        CLKPR,temp        ; частоты
    clr        temp            ;
    sts        UBRR0H,temp        ;
    ldi        temp,29            ; ubrr=29
    sts        UBRR0L,temp        ; 9600 бод/сек
    ldi        temp,0b00011000    ; установка TXEN RXEN
    sts        UCSR0B,temp        ; USART вкл
Код
USART_transmit:
    lds        temp2,UCSR0A    ;
    sbrs    temp2,(UDRE0)    ;ждем пока содержимое из UDR0 перегрузится в сдвиговый регистр
    rjmp    USART_transmit    ;
    sts        UDR0,temp        ;отправляем
    ret                        ;возврат из процедуры отправки

USART_receive:
    lds        temp2,UCSR0A    ;
    sbrs    temp2,(RXC0)    ;ждем приема символа (установка RXC)
    rjmp    USART_receive    ;
    lds        temp,UDR0        ;читаем
    ret                        ;возврат из процедуры приема
В чем может быть дело?
Спасибо.

Сообщение отредактировал Alt.F4 - Sep 24 2010, 15:59
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Alt.F4   USART ATmega48   Sep 24 2010, 12:26
- - Alt.F4   Прогоняю в AVR Studio - все работает.   Sep 24 2010, 16:49
- - abi   По вашему коду программа зацикливается в процедуре...   Sep 25 2010, 01:15
- - Alt.F4   Да, я знаю. Вопрос в другом: если сперва делать пе...   Sep 25 2010, 06:51
- - alexeyv   А какой драйвер RS-232 стоит? Может он находится в...   Sep 25 2010, 09:05
- - Alt.F4   ЦитатаА какой драйвер RS-232 стоит?max3232, но с н...   Sep 25 2010, 09:50
- - Alt.F4   Пробовал передавать по установке TXC0 из UCSR0A - ...   Sep 25 2010, 15:56
- - Deka   Делал девайс, который при включении отсылает верси...   Sep 25 2010, 17:28
- - Alt.F4   Цитатаldi temp,0b00011000 ; установка TX...   Sep 25 2010, 18:34
|- - rx3apf   Цитата(Alt.F4 @ Sep 25 2010, 22:34) а на ...   Sep 25 2010, 18:44
- - Alt.F4   Смысл от этого все равно какбе не меняется... Ч...   Sep 25 2010, 19:12
- - Alt.F4   Твою мать, пятые сутки не сплю, а это HyperTermina...   Sep 26 2010, 06:53
- - Александр77   С каких пор гипертерминал не принимает до нажатия?...   Sep 26 2010, 16:51
- - Alt.F4   ЦитатаС каких пор гипертерминал не принимает до на...   Sep 26 2010, 17:01
|- - MrYuran   Цитата(Alt.F4 @ Sep 26 2010, 21:01) Без п...   Sep 28 2010, 13:27
- - alexeyv   Тогда попробуй использовать не ГиперТерминал, а ка...   Sep 27 2010, 04:12
- - tazik   А Вы на телефончики вверху гипертерминала смотрели...   Sep 27 2010, 05:17
- - Alt.F4   Да, я в курсе про "телефончики", но терм...   Sep 27 2010, 07:06
|- - Сергей Борщ   Цитата(Alt.F4 @ Sep 27 2010, 10:06) (Когд...   Sep 28 2010, 12:54
- - Deka   Возьмите другую терминалку.   Sep 28 2010, 10:09
- - IgorKossak   Например такую.   Sep 28 2010, 10:44
- - Lisitsin   У меня UART тоже глючил на AT90S2313. Всю голову с...   Oct 3 2010, 18:02


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 20:57
Рейтинг@Mail.ru


Страница сгенерированна за 0.01387 секунд с 7
ELECTRONIX ©2004-2016