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

 
 
> Передача сигнала по UART
Freeze Anti
сообщение May 29 2007, 04:43
Сообщение #1


Частый гость
**

Группа: Новичок
Сообщений: 153
Регистрация: 29-03-07
Из: Саратов
Пользователь №: 26 613



Передаю некорый набор символов по UART.
Вроде, все делаю по-человечески, но у меня в ответ на компьютере приходи абсолютно не то, что я хотел...

Вот два куска кода.

1. Обращение к подпрограмме передачи сообщения

_SEI();
UCR = 0x90;
UBRR = 0x9C;
if (UDR == 0xAA)
{
_CLI();
UCR = 0x18;
HistoryTransmit(); // Передача некоторой строчки в UART
SEI_();
}

2. Функция, связанная непосредственно, с передачей одного символа.

void COMWriteChar(unsigned char C)
{
_NOP();
_NOP();
UCR = 0x18;
UDR = C;
// Далее, для проверки, рисую все это на экране дисплея, и посылаю нулевой символ...
ScreenWriteChar©;
UDR = 0;
}

Потом, при приеме на компьютере некоторой строчки, (предположим, в функцию загоняются значения 0xFF, 0xA0, 0x61, 0xB7) получаем в ком порте компьютера значения 0xFF, 0x00, 0x30, 0x00, 0x20, 0x30, 0x30, 0x30.

Где я что делаю не так и как мне получить именно те переменные, которыя я и посылаю.


--------------------
!!! All you need is LOVE !!!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Freeze Anti
сообщение May 29 2007, 09:17
Сообщение #2


Частый гость
**

Группа: Новичок
Сообщений: 153
Регистрация: 29-03-07
Из: Саратов
Пользователь №: 26 613



Я, конечно, понимаю, что необходимо выполнять проверку USR, но когда я в конце подпрограммы пишу строчку

Код
while (USR & 0x20);


у меня программа уходит в бесконечный цикл.

А какие нечитаемые символы я использую вместо поименованных констант?

0x90 - это я заполняю регистр UCR и настраиваю UART на прием
0x9C - это значение ргистра UBRR при скорости передачи 2400 бод и частоте осциллятора 6 МГц
0х18 - настраиваю UART на передачу
0xAA - символ, который я использую, чтобы при получении его с компьютера, скинуть информацию в UART.

И еще... Хочу попробовать переписать подпрограмму передачи одного символа в ассемблере. У меня, к сожалению из литературы только книжка Шпака по программированию в среде WinAVR. Переписывать полностью программу под этот компиллятор нет ни времени ни желания. Напишите, если возможно, как в IARе написать ассемблерную вставку. Он ругается на asm и говорит, что не знает данного слова.


--------------------
!!! All you need is LOVE !!!
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 07:12
Рейтинг@Mail.ru


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