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

 
 
> Байт по RS232
Kuznec9999
сообщение May 14 2008, 15:00
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 47
Регистрация: 29-04-08
Пользователь №: 37 157



Помогите. Необходимо переслать байт данных по RS232 на компьютер (например регистр R16). Как это сделать на ATMega8 на ассемблере?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение May 14 2008, 17:18
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Должна, но 1MHz не лучший выбор для 115200, если используется RC - тем более.
Go to the top of the page
 
+Quote Post
Kuznec9999
сообщение May 14 2008, 17:50
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 47
Регистрация: 29-04-08
Пользователь №: 37 157



Цитата(aaarrr @ May 14 2008, 21:18) *
Должна, но 1MHz не лучший выбор для 115200, если используется RC - тем более.


Пожалуйста, помогите мне с этим:

-------------------------

.include "c:\asm\AvrAssembler2\Appnotes\m8def.inc"

ldi r16,0b00000000
out ucsra,r16

ldi r16,0b00001000
out ucsrb,r16

ldi r16,0b10000110
out ucsrc,r16

ldi r16,0b00000110
out ubrrl,r16

ldi r16,0b00000000
out ubrrh,r16

ldi r16,0xFF

qwe:
sbis ucsra,udre
rjmp qwe


out udr,r16
ret

------------------

Прекрасно выводит FF в порт... Но если передаём число, например, 0x87, то передаётся 0x07... Тоже самое с 0x88 - передаётся 0x08... В чём дело? Спасибо.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 14 2008, 18:07
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Kuznec9999 @ May 14 2008, 21:50) *
Прекрасно выводит FF в порт... Но если передаём число, например, 0x87, то передаётся 0x07... Тоже самое с 0x88 - передаётся 0x08... В чём дело? Спасибо.

Похоже что частоты очень сильно отличаются. Я правильно понимаю, что стоит кварц (или RC?) 1MHz и скорость UART 9600? Тогда ошибка будет 7%, а должна быть не более 1.5%.
Go to the top of the page
 
+Quote Post
Kuznec9999
сообщение May 14 2008, 18:48
Сообщение #5


Участник
*

Группа: Новичок
Сообщений: 47
Регистрация: 29-04-08
Пользователь №: 37 157



Цитата(aaarrr @ May 14 2008, 22:07) *
Похоже что частоты очень сильно отличаются. Я правильно понимаю, что стоит кварц (или RC?) 1MHz и скорость UART 9600? Тогда ошибка будет 7%, а должна быть не более 1.5%.

Спасибо, я об этом и не подумал даже...
Скажите, а установка бита U2X (удвоение скорости обмена) может дать результат?

Установка бита решила проблему (Дело действительно было в проценте ошибки - процент ошибки уменьшился до 0.2). Спасибо за помощь! beer.gif

Цитата(Kuznec9999 @ May 14 2008, 22:31) *
Спасибо, я об этом и не подумал даже...
Скажите, а установка бита U2X (удвоение скорости обмена) может дать результат?

Установка бита решила проблему (Дело действительно было в проценте ошибки - процент ошибки уменьшился до 0.2). Спасибо за помощь! beer.gif


Кстати, скажите, а имеется какой-либо буфер данных приёма/передачи в ATMega8?

Сообщение отредактировал Kuznec9999 - May 14 2008, 18:28
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 14 2008, 18:54
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Kuznec9999 @ May 14 2008, 22:48) *
Кстати, скажите, а имеется какой-либо буфер данных приёма/передачи в ATMega8?

Скажу: Есть UDR - по одному символу на прием и передачу.
Но в следующий раз пошлю читать даташит twak.gif
Go to the top of the page
 
+Quote Post
Kuznec9999
сообщение May 14 2008, 18:59
Сообщение #7


Участник
*

Группа: Новичок
Сообщений: 47
Регистрация: 29-04-08
Пользователь №: 37 157



Цитата(aaarrr @ May 14 2008, 22:54) *
Скажу: Есть UDR - по одному символу на прием и передачу.
Но в следующий раз пошлю читать даташит twak.gif

Прошу прощения, просто в английском не очень силён, спасибо! И ещё один вопрос, для чего нужны ножки RTS и CTS? (только пожалуйста, не посылайте в даташит, т.к там ничего не нашёл). Спасибо
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Kuznec9999   Байт по RS232   May 14 2008, 15:00
- - aaarrr   Можно так: Кодtx_byte: in c, UCSRA sbrs c, U...   May 14 2008, 15:04
|- - Kuznec9999   Цитата(aaarrr @ May 14 2008, 19:04) Можно...   May 14 2008, 15:07
|- - aaarrr   Цитата(Kuznec9999 @ May 14 2008, 19:07) Э...   May 14 2008, 15:13
|- - Kuznec9999   Цитата(aaarrr @ May 14 2008, 19:13) Можно...   May 14 2008, 16:47
- - Палыч   В ДШ на mega8 есть примеры программ на языке ассем...   May 14 2008, 15:12
- - aaarrr   Для аппаратного управления потоком - передатчик то...   May 14 2008, 19:04
|- - Kuznec9999   Цитата(aaarrr @ May 14 2008, 23:04) Для а...   May 14 2008, 19:07
- - aaarrr   Да, этого вполне достаточно. Управление потоком ис...   May 14 2008, 19:08
|- - Kuznec9999   Цитата(aaarrr @ May 14 2008, 23:08) Да, э...   May 14 2008, 19:11
|- - aaarrr   Цитата(Kuznec9999 @ May 14 2008, 23:11) М...   May 14 2008, 19:17
||- - Kuznec9999   Цитата(aaarrr @ May 14 2008, 23:17) Нельз...   May 14 2008, 19:20
|- - @Ark   Цитата(Kuznec9999 @ May 14 2008, 23:11) П...   May 15 2008, 08:06
- - aaarrr   У RS232 логическая "1" от -3 до -15 воль...   May 14 2008, 19:27
|- - Kuznec9999   Цитата(aaarrr @ May 14 2008, 23:27) У RS2...   May 14 2008, 19:52
- - Lepeksiy   Для отладки и домашних нужд использовал такую схем...   May 15 2008, 10:12
|- - VXDRV   Цитата(Lepeksiy @ May 15 2008, 16:12) Для...   May 15 2008, 14:42
|- - aaarrr   Цитата(VXDRV @ May 15 2008, 18:42) Проще ...   May 15 2008, 15:04
|- - @Ark   Цитата(aaarrr @ May 15 2008, 19:04) ... А...   May 15 2008, 16:54
- - Lepeksiy   ЦитатаБудут танцы с бубном! (или не будут - кт...   May 16 2008, 23:21
- - XVR   Цитата(Lepeksiy @ May 17 2008, 03:21) Ник...   May 19 2008, 08:11


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

 


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


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