USART глюки или я туплю
- Реклама
Re: USART глюки или я туплю
наступило завтра ))igor-x писал(а):завтра пришлю работающий примерyuta_86 писал(а):может быть дело не в терминале? в настройках codevision ? может есть у кого для 8 меги работающий пример?
- Engineer_Keen
- Друг Кота
- Сообщения: 3872
- Зарегистрирован: Пт янв 29, 2010 10:27:40
- Откуда: Москва
Re: USART глюки или я туплю
Как я с самого начала и подозревалyuta_86 писал(а): у меня стоит кварц на ножках PB6 и PB7 на 7.3728.
пробовал с фьюзами тоже самое.... выдаёт
Последний раз редактировалось Engineer_Keen Пт фев 10, 2012 08:31:30, всего редактировалось 1 раз.
Re: USART глюки или я туплю
Engineer_Keen писал(а):yuta_86 писал(а): у меня стоит кварц на ножках PB6 и PB7 на 7.3728.
пробовал с фьюзами тоже самое.... выдаётНу так у вас скорость 9600 для частоты 8МГц посчитана! Вот и выдается не то что надо. И терминал тут не причем!
ещё раз и подробнее можно?
- Engineer_Keen
- Друг Кота
- Сообщения: 3872
- Зарегистрирован: Пт янв 29, 2010 10:27:40
- Откуда: Москва
Re: USART глюки или я туплю
меняйте UBRRL=0x2F
- Реклама
Re: USART глюки или я туплю
Engineer_Keen писал(а):меняйте UBRRL=0x2F
Господа он гений!!!!!!
поясни что я делал не так. сильно не пинай только
Re: USART глюки или я туплю
и ещё вопросик
printf("Hello\r"); delay_ms(100); почему выводит не в одной строке каждый раз а переводит в другую codevision терминал?
printf("Hello\r"); delay_ms(100); почему выводит не в одной строке каждый раз а переводит в другую codevision терминал?
- Engineer_Keen
- Друг Кота
- Сообщения: 3872
- Зарегистрирован: Пт янв 29, 2010 10:27:40
- Откуда: Москва
Re: USART глюки или я туплю
Смотрим в раздел 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, как результат - несовпадение скоростей и глюки, которые вы словили в терминале.
скорость 9600: UBRRL для 8МГц - 51 (0х33), для 7.3МГц - 47 (0x2F)
Т.е. у вас и в настройках проекта и по UBRRL предполагалось что тактовая 8 и это все было бы нормально, если бы МК тактировался от внутреннего RC (CKSEL=0100) или кварц бы стоял не 7.3, а 8. А вы взяли и запрогали фьюзы под внешний кварц на 7.3, как результат - несовпадение скоростей и глюки, которые вы словили в терминале.
Ну так "\r" же стоит... Уберете \r - будет подряд, если в терминале нет настройки переходить на следующую строку при перерывах в передаче.yuta_86 писал(а):и ещё вопросик
printf("Hello\r"); delay_ms(100); почему выводит не в одной строке каждый раз а переводит в другую codevision терминал?
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, как результат - несовпадение скоростей и глюки, которые вы словили в терминале.
Ну так "\r" же стоит... Уберете \r - будет подряд, если в терминале нет настройки переходить на следующую строку при перерывах в передаче.yuta_86 писал(а):и ещё вопросик
printf("Hello\r"); delay_ms(100); почему выводит не в одной строке каждый раз а переводит в другую codevision терминал?
так нашёл страницу вижу в десятичной это 47 (2F) а что значит дальше в сдед столбце 95 ??
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, как результат - несовпадение скоростей и глюки, которые вы словили в терминале.
Ну так "\r" же стоит... Уберете \r - будет подряд, если в терминале нет настройки переходить на следующую строку при перерывах в передаче.yuta_86 писал(а):и ещё вопросик
printf("Hello\r"); delay_ms(100); почему выводит не в одной строке каждый раз а переводит в другую codevision терминал?
то есть CV не может печатать на одной и той же строке? я так понял?
- Engineer_Keen
- Друг Кота
- Сообщения: 3872
- Зарегистрирован: Пт янв 29, 2010 10:27:40
- Откуда: Москва
Re: USART глюки или я туплю
про 95: второе значение для случая, когда включен бит удвоения скорости U2X, который в составе UCSRA
про строку: CV тут не причем, какую вы строку напишете, такую он и выдаст. Написали "hello" - выдаст "hello", напишете "hello"+новая строка - выдаст "hello" и перейдет на новую строку.
А, стоп... codevision терминал? в него тоже терминал встроен? про него я не знаю, я в нем не пишу...
про строку: CV тут не причем, какую вы строку напишете, такую он и выдаст. Написали "hello" - выдаст "hello", напишете "hello"+новая строка - выдаст "hello" и перейдет на новую строку.
А, стоп... codevision терминал? в него тоже терминал встроен? про него я не знаю, я в нем не пишу...
Последний раз редактировалось Engineer_Keen Пт фев 10, 2012 08:56:43, всего редактировалось 1 раз.
Re: USART глюки или я туплю
ок всё понял спасибо.
то есть CV не может печатать на одной и той же строке? я так понял?
то есть CV не может печатать на одной и той же строке? я так понял?
Re: USART глюки или я туплю
А давайте банить за цитирование простыни поста? Вот на хера так делать, если пишите сразу после этого поста? Откройте для себя кнопку "ответить".
Re: USART глюки или я туплю
не надо банить....
буду внимательнее впредь
буду внимательнее впредь
Re: USART глюки или я туплю
видимо не работает....... CV с \r...
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: USART глюки или я туплю
Вот что подставляет CV компилятор:
С \n
c \r
c \r\n
сдается мне, это именно то, что надо.
С \n
Код: Выделить всё
.DB 0x31,0x32,0x33,0xA,0x0Код: Выделить всё
.DB 0x31,0x32,0x33,0xD,0x0Код: Выделить всё
.DB 0x31,0x32,0x33,0xD,0xA,0x0Docendo discimus
- Engineer_Keen
- Друг Кота
- Сообщения: 3872
- Зарегистрирован: Пт янв 29, 2010 10:27:40
- Откуда: Москва
Re: USART глюки или я туплю
\n, он же 0x0A, он же 010 - это служебный символ Line Feed - "с новой строки", он заставляет терминал/принтер или другое устройство перейти на следующую строку.
\r, он же 0x0D, он же 013 - это Carriage Return - "возврат каретки", заставляет переместить курсор на первый символ в строке.
Например если открыть любой текстовый файл в HEX-редакторе можно увидеть, что все строки заканчиваются парой \n и \r.
\r, он же 0x0D, он же 013 - это Carriage Return - "возврат каретки", заставляет переместить курсор на первый символ в строке.
Например если открыть любой текстовый файл в HEX-редакторе можно увидеть, что все строки заканчиваются парой \n и \r.
Последний раз редактировалось Engineer_Keen Пт фев 10, 2012 12:32:48, всего редактировалось 1 раз.
Re: USART глюки или я туплю
еще есть вариант понимания этого глюка с символами - особенности операционной системы . надо попробовать эту передачу данных на другом компе.yuta_86 писал(а):видимо не работает....... CV с \r...
- Engineer_Keen
- Друг Кота
- Сообщения: 3872
- Зарегистрирован: Пт янв 29, 2010 10:27:40
- Откуда: Москва
Re: USART глюки или я туплю
Да ну, лучше просто увидеть что на самом деле принимается. Если есть возможность, то нужно выставить настройки чтобы информация выводилась просто в HEX-кодах. Если нет, то скачать например Terminal от Br@y (хоть тут), там такая возможность точно есть.


