USART глюки или я туплю

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: USART глюки или я туплю

Сообщение pyzhman »

Ща гляну код.
Docendo discimus
Реклама
yuta_86
Открыл глаза
Сообщения: 78
Зарегистрирован: Пн май 23, 2011 11:23:39

Re: USART глюки или я туплю

Сообщение yuta_86 »

igor-x писал(а):
yuta_86 писал(а):может быть дело не в терминале? в настройках codevision ? может есть у кого для 8 меги работающий пример?
завтра пришлю работающий пример
наступило завтра ))
Реклама
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: USART глюки или я туплю

Сообщение Engineer_Keen »

yuta_86 писал(а): у меня стоит кварц на ножках PB6 и PB7 на 7.3728.
пробовал с фьюзами тоже самое.... выдаёт
Как я с самого начала и подозревал :facepalm: Ну так у вас скорость 9600 для частоты 8МГц посчитана! Вот и выдается не то что надо. И терминал тут не причем! Только что проверил для своей проги. Поставил кварц на 7.3 - результат предсказуемый: "123" -> "qrs". Либо ставьте другой кварц или шейте CKSEL=0100, либо меняйте константу в UBRRL.
Последний раз редактировалось Engineer_Keen Пт фев 10, 2012 08:31:30, всего редактировалось 1 раз.
yuta_86
Открыл глаза
Сообщения: 78
Зарегистрирован: Пн май 23, 2011 11:23:39

Re: USART глюки или я туплю

Сообщение yuta_86 »

Engineer_Keen писал(а):
yuta_86 писал(а): у меня стоит кварц на ножках PB6 и PB7 на 7.3728.
пробовал с фьюзами тоже самое.... выдаёт
:facepalm: Ну так у вас скорость 9600 для частоты 8МГц посчитана! Вот и выдается не то что надо. И терминал тут не причем!

ещё раз и подробнее можно?
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: USART глюки или я туплю

Сообщение Engineer_Keen »

меняйте UBRRL=0x2F
Реклама
yuta_86
Открыл глаза
Сообщения: 78
Зарегистрирован: Пн май 23, 2011 11:23:39

Re: USART глюки или я туплю

Сообщение yuta_86 »

Engineer_Keen писал(а):меняйте UBRRL=0x2F

Господа он гений!!!!!!


поясни что я делал не так. сильно не пинай только
Реклама
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: USART глюки или я туплю

Сообщение pyzhman »

2Engineer_Keen: :)
2yuta_86: ага, в курсе.
Docendo discimus
yuta_86
Открыл глаза
Сообщения: 78
Зарегистрирован: Пн май 23, 2011 11:23:39

Re: USART глюки или я туплю

Сообщение yuta_86 »

и ещё вопросик

printf("Hello\r"); delay_ms(100); почему выводит не в одной строке каждый раз а переводит в другую codevision терминал?
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: USART глюки или я туплю

Сообщение Engineer_Keen »

Смотрим в раздел Examples of BautRate Setting (стр 160-161):
скорость 9600: UBRRL для 8МГц - 51 (0х33), для 7.3МГц - 47 (0x2F)
Т.е. у вас и в настройках проекта и по UBRRL предполагалось что тактовая 8 и это все было бы нормально, если бы МК тактировался от внутреннего RC (CKSEL=0100) или кварц бы стоял не 7.3, а 8. А вы взяли и запрогали фьюзы под внешний кварц на 7.3, как результат - несовпадение скоростей и глюки, которые вы словили в терминале.
yuta_86 писал(а):и ещё вопросик
printf("Hello\r"); delay_ms(100); почему выводит не в одной строке каждый раз а переводит в другую codevision терминал?
Ну так "\r" же стоит... Уберете \r - будет подряд, если в терминале нет настройки переходить на следующую строку при перерывах в передаче.
yuta_86
Открыл глаза
Сообщения: 78
Зарегистрирован: Пн май 23, 2011 11:23:39

Re: USART глюки или я туплю

Сообщение yuta_86 »

Engineer_Keen писал(а):Смотрим в раздел Examples of BautRate Setting (стр 160-161):
скорость 9600: UBRRL для 8МГц - 51 (0х33), для 7.3МГц - 47 (0x2F)
Т.е. у вас и в настройках проекта и по UBRRL предполагалось что тактовая 8 и это все было бы нормально, если бы МК тактировался от внутреннего RC (CKSEL=0100) или кварц бы стоял не 7.3, а 8. А вы взяли и запрогали фьюзы под внешний кварц на 7.3, как результат - несовпадение скоростей и глюки, которые вы словили в терминале.
yuta_86 писал(а):и ещё вопросик
printf("Hello\r"); delay_ms(100); почему выводит не в одной строке каждый раз а переводит в другую codevision терминал?
Ну так "\r" же стоит... Уберете \r - будет подряд, если в терминале нет настройки переходить на следующую строку при перерывах в передаче.

так нашёл страницу вижу в десятичной это 47 (2F) а что значит дальше в сдед столбце 95 ??
yuta_86
Открыл глаза
Сообщения: 78
Зарегистрирован: Пн май 23, 2011 11:23:39

Re: USART глюки или я туплю

Сообщение yuta_86 »

Engineer_Keen писал(а):Смотрим в раздел Examples of BautRate Setting (стр 160-161):
скорость 9600: UBRRL для 8МГц - 51 (0х33), для 7.3МГц - 47 (0x2F)
Т.е. у вас и в настройках проекта и по UBRRL предполагалось что тактовая 8 и это все было бы нормально, если бы МК тактировался от внутреннего RC (CKSEL=0100) или кварц бы стоял не 7.3, а 8. А вы взяли и запрогали фьюзы под внешний кварц на 7.3, как результат - несовпадение скоростей и глюки, которые вы словили в терминале.
yuta_86 писал(а):и ещё вопросик
printf("Hello\r"); delay_ms(100); почему выводит не в одной строке каждый раз а переводит в другую codevision терминал?
Ну так "\r" же стоит... Уберете \r - будет подряд, если в терминале нет настройки переходить на следующую строку при перерывах в передаче.

то есть CV не может печатать на одной и той же строке? я так понял?
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: USART глюки или я туплю

Сообщение Engineer_Keen »

про 95: второе значение для случая, когда включен бит удвоения скорости U2X, который в составе UCSRA
про строку: CV тут не причем, какую вы строку напишете, такую он и выдаст. Написали "hello" - выдаст "hello", напишете "hello"+новая строка - выдаст "hello" и перейдет на новую строку.
А, стоп... codevision терминал? в него тоже терминал встроен? про него я не знаю, я в нем не пишу...
Последний раз редактировалось Engineer_Keen Пт фев 10, 2012 08:56:43, всего редактировалось 1 раз.
yuta_86
Открыл глаза
Сообщения: 78
Зарегистрирован: Пн май 23, 2011 11:23:39

Re: USART глюки или я туплю

Сообщение yuta_86 »

ок всё понял спасибо.


то есть CV не может печатать на одной и той же строке? я так понял?
Аватара пользователя
hybroid
Друг Кота
Сообщения: 8007
Зарегистрирован: Вс ноя 14, 2010 19:24:26
Откуда: Лукалэнд

Re: USART глюки или я туплю

Сообщение hybroid »

А давайте банить за цитирование простыни поста? Вот на хера так делать, если пишите сразу после этого поста? Откройте для себя кнопку "ответить".
yuta_86
Открыл глаза
Сообщения: 78
Зарегистрирован: Пн май 23, 2011 11:23:39

Re: USART глюки или я туплю

Сообщение yuta_86 »

не надо банить....

буду внимательнее впредь
yuta_86
Открыл глаза
Сообщения: 78
Зарегистрирован: Пн май 23, 2011 11:23:39

Re: USART глюки или я туплю

Сообщение yuta_86 »

видимо не работает....... CV с \r...
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: USART глюки или я туплю

Сообщение pyzhman »

Вот что подставляет CV компилятор:
С \n

Код: Выделить всё

.DB  0x31,0x32,0x33,0xA,0x0
c \r

Код: Выделить всё

.DB  0x31,0x32,0x33,0xD,0x0
c \r\n

Код: Выделить всё

.DB  0x31,0x32,0x33,0xD,0xA,0x0
сдается мне, это именно то, что надо.
Docendo discimus
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: USART глюки или я туплю

Сообщение Engineer_Keen »

\n, он же 0x0A, он же 010 - это служебный символ Line Feed - "с новой строки", он заставляет терминал/принтер или другое устройство перейти на следующую строку.
\r, он же 0x0D, он же 013 - это Carriage Return - "возврат каретки", заставляет переместить курсор на первый символ в строке.
Например если открыть любой текстовый файл в HEX-редакторе можно увидеть, что все строки заканчиваются парой \n и \r.
Последний раз редактировалось Engineer_Keen Пт фев 10, 2012 12:32:48, всего редактировалось 1 раз.
Аватара пользователя
igor-x
Мудрый кот
Сообщения: 1817
Зарегистрирован: Пн ноя 29, 2010 15:58:43

Re: USART глюки или я туплю

Сообщение igor-x »

yuta_86 писал(а):видимо не работает....... CV с \r...
еще есть вариант понимания этого глюка с символами - особенности операционной системы . надо попробовать эту передачу данных на другом компе.
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: USART глюки или я туплю

Сообщение Engineer_Keen »

Да ну, лучше просто увидеть что на самом деле принимается. Если есть возможность, то нужно выставить настройки чтобы информация выводилась просто в HEX-кодах. Если нет, то скачать например Terminal от Br@y (хоть тут), там такая возможность точно есть.
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»