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

 
 
> USART
KIG
сообщение Jul 25 2007, 10:13
Сообщение #1


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

Группа: Участник
Сообщений: 115
Регистрация: 25-12-06
Пользователь №: 23 884



Здравствуйте!
Пытаюсь передать цифру 5 через USART ATmega16 на компьютер в программу Terminal. На компьютере принамаю вместо одной цифры три, причем среди них нет ни одной пятерки. В программе Terminal установил скорость передачи в 115200 кбит/с, 2 стоповых бита, 8 бит в кадре. Код программы привел ниже. В чем причина, что я делаю неправильно?

#include <iom16v.h>
#include <macros.h>

void uart0_init(void)
{
UCSRB = 0x00; //disable while setting baud rate
UCSRA = 0x00;
UBRRL = 0x01; //set baud rate lo
UBRRH = 0x00; //set baud rate hi
UCSRC = 0x8E;
UCSRB = 0x08;
}

void putchar(char ch)
{ while (!(UCSRA&(1<<UDRE)));
UDR=ch;
}

void main(void)
{CLI(); //disable all interrupts
uart0_init();
SEI(); //re-enable interrupts
putchar(5);
while(1);
}
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SasaVitebsk
сообщение Jul 26 2007, 20:20
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Даже ещё усугублю немножко. smile.gif Я тут хомутнул и на IBM выставил 5 бит. Использовал куски готовые и компоненту которую раньше использовал. Но в компоненте забыл выставить параметры, ну а по умолчанию было 5-N-1. Протокол у меня с CRC. Ну а на микрухе выставил всё правильно.

При тестировании передавалась посылка - с десяток байт. Так вы не поверите - на приём в однокристалке всё работало правильно, а вот с приёмом IBM были проблемы. Обрезались старшие биты. То есть похоже (честно не разбирался) что IBM всё равно передаёт 8 бит просто заполняет их как-то. Иначе не пойму как у меня это всё работало. Точнее не IBM, а FTDI. Забыл сказать, ft232rl стояла.

В книге Агурова "Последовательные интерфейсы ПК" реализуется 7ми битный режим передачи с помощью простого восьмибитного путём добавления 1 в старший бит. А я, баран, в своё время не догадался. Надо мне было, так я программно его. smile.gif

Теперь два стоп-бита практически не используются, но если зарядить два стоп-бита, то такая система беспроблемно будет работать с системой, на другом конце провода, на которой выставлен 1 стоп-бит. Может понадобится разве что если вы не справляетесь с обработкой байта после приёма.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- KIG   USART   Jul 25 2007, 10:13
- - KRS   Цитата(KIG @ Jul 25 2007, 14:13) На компь...   Jul 25 2007, 10:19
|- - KIG   Цитата(KRS @ Jul 25 2007, 13:19) Так на м...   Jul 25 2007, 12:22
- - prottoss   По поводу baudrate : я делаю так Код#define CPU_C...   Jul 25 2007, 10:47
|- - Сергей Борщ   Цитата(prottoss @ Jul 25 2007, 13:47) Код...   Jul 25 2007, 12:21
|- - prottoss   Цитата(Сергей Борщ @ Jul 25 2007, 20:21) ...   Jul 25 2007, 12:46
- - =GM=   Цитата(KIG @ Jul 25 2007, 09:13) Пытаюсь ...   Jul 25 2007, 12:13
- - Igor26   А почему два стоп-бита?   Jul 25 2007, 12:59
|- - Сергей Борщ   Цитата(Igor26 @ Jul 25 2007, 15:59) А поч...   Jul 25 2007, 14:05
|- - =GM=   Цитата(Сергей Борщ @ Jul 25 2007, 13:05) ...   Jul 26 2007, 12:12
|- - Сергей Борщ   Цитата(=GM= @ Jul 26 2007, 15:12) Ну здес...   Jul 26 2007, 14:45
|- - =GM=   Цитата(Сергей Борщ @ Jul 26 2007, 13:45) ...   Jul 26 2007, 15:18
- - colombo_2007   Я так и не понял решилась ли у вас проблема. Если ...   Jul 27 2007, 05:50
|- - KIG   Цитата(colombo_2007 @ Jul 27 2007, 08:50)...   Jul 27 2007, 16:45
|- - prottoss   Цитата(KIG @ Jul 28 2007, 00:45) Проблема...   Jul 27 2007, 17:02
|- - =GM=   Цитата(KIG @ Jul 27 2007, 16:45) В зависи...   Jul 27 2007, 21:42
|- - Petka   Цитата(=GM= @ Jul 28 2007, 01:42) Чтобы и...   Jul 28 2007, 08:18
- - KIG   Спасибо за помощь! Постараюсь сегодня попробов...   Jul 30 2007, 07:50


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

 


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


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