Страница 3 из 4

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

Добавлено: Пт фев 10, 2012 08:25:08
pyzhman
Ща гляну код.

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

Добавлено: Пт фев 10, 2012 08:27:00
yuta_86
igor-x писал(а):
yuta_86 писал(а):может быть дело не в терминале? в настройках codevision ? может есть у кого для 8 меги работающий пример?
завтра пришлю работающий пример
наступило завтра ))

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

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

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

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

ещё раз и подробнее можно?

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

Добавлено: Пт фев 10, 2012 08:33:25
Engineer_Keen
меняйте UBRRL=0x2F

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

Добавлено: Пт фев 10, 2012 08:35:10
yuta_86
Engineer_Keen писал(а):меняйте UBRRL=0x2F

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


поясни что я делал не так. сильно не пинай только

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

Добавлено: Пт фев 10, 2012 08:39:14
pyzhman
2Engineer_Keen: :)
2yuta_86: ага, в курсе.

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

Добавлено: Пт фев 10, 2012 08:40:12
yuta_86
и ещё вопросик

printf("Hello\r"); delay_ms(100); почему выводит не в одной строке каждый раз а переводит в другую codevision терминал?

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

Добавлено: Пт фев 10, 2012 08:44:20
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 - будет подряд, если в терминале нет настройки переходить на следующую строку при перерывах в передаче.

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

Добавлено: Пт фев 10, 2012 08:49:39
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 ??

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

Добавлено: Пт фев 10, 2012 08:51:01
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 не может печатать на одной и той же строке? я так понял?

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

Добавлено: Пт фев 10, 2012 08:52:27
Engineer_Keen
про 95: второе значение для случая, когда включен бит удвоения скорости U2X, который в составе UCSRA
про строку: CV тут не причем, какую вы строку напишете, такую он и выдаст. Написали "hello" - выдаст "hello", напишете "hello"+новая строка - выдаст "hello" и перейдет на новую строку.
А, стоп... codevision терминал? в него тоже терминал встроен? про него я не знаю, я в нем не пишу...

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

Добавлено: Пт фев 10, 2012 08:55:08
yuta_86
ок всё понял спасибо.


то есть CV не может печатать на одной и той же строке? я так понял?

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

Добавлено: Пт фев 10, 2012 08:56:48
hybroid
А давайте банить за цитирование простыни поста? Вот на хера так делать, если пишите сразу после этого поста? Откройте для себя кнопку "ответить".

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

Добавлено: Пт фев 10, 2012 09:00:03
yuta_86
не надо банить....

буду внимательнее впредь

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

Добавлено: Пт фев 10, 2012 10:02:17
yuta_86
видимо не работает....... CV с \r...

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

Добавлено: Пт фев 10, 2012 11:38:49
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
сдается мне, это именно то, что надо.

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

Добавлено: Пт фев 10, 2012 12:31:54
Engineer_Keen
\n, он же 0x0A, он же 010 - это служебный символ Line Feed - "с новой строки", он заставляет терминал/принтер или другое устройство перейти на следующую строку.
\r, он же 0x0D, он же 013 - это Carriage Return - "возврат каретки", заставляет переместить курсор на первый символ в строке.
Например если открыть любой текстовый файл в HEX-редакторе можно увидеть, что все строки заканчиваются парой \n и \r.

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

Добавлено: Пт фев 10, 2012 12:32:20
igor-x
yuta_86 писал(а):видимо не работает....... CV с \r...
еще есть вариант понимания этого глюка с символами - особенности операционной системы . надо попробовать эту передачу данных на другом компе.

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

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