/Проверить я хотел, установлены ли все три первых бита.
CodeVision AVR в вопросах и ответах
- Сообщения: 690
- Зарегистрирован: Вс мар 04, 2007 01:17:12
- Реклама
Здравствуйте, Уважаемые. Возникла проблема, не знаю как решить:
Пользуюсь CVARV 2.03.9, Proteus 7.4 SP3 + отладка на реальной плате.
Mega8 связуется по USART с компом, надо сделать переход на новую строчку.
printf("Start. \n");
printf("%s\n","Start.");
printf("%p\n","Start.");
ни один с вышеперечисленых вариантов не работает. Так же не работает и табуляция \t, потому есть предположение того, что повреждена библиотека (или просто недописана). Знаю в простом С есть ещё пару вариантов (типа cout<<endl;), но они не работают в CVARV.
Кто подскажет выход? может есть аццкий символ перехода? или где библиотеку подправить (ASM-ом, к сожалению, не владею).
Пользуюсь CVARV 2.03.9, Proteus 7.4 SP3 + отладка на реальной плате.
Mega8 связуется по USART с компом, надо сделать переход на новую строчку.
printf("Start. \n");
printf("%s\n","Start.");
printf("%p\n","Start.");
ни один с вышеперечисленых вариантов не работает. Так же не работает и табуляция \t, потому есть предположение того, что повреждена библиотека (или просто недописана). Знаю в простом С есть ещё пару вариантов (типа cout<<endl;), но они не работают в CVARV.
Кто подскажет выход? может есть аццкий символ перехода? или где библиотеку подправить (ASM-ом, к сожалению, не владею).
это из "простого С++"ARMag писал(а):Знаю в простом С есть ещё пару вариантов (типа cout<<endl;)
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сообщения: 828
- Зарегистрирован: Пн мар 16, 2009 21:40:57
Выход ОЧЕВИДЕН имхо. Проверьте какие реально символы передаются.ARMag писал(а):Кто подскажет выход?
Программы для мониторинга COM порта и для отладки программы в микроконтроллере через COM порт ПК есть в задаче 4 , и прекрасно переходит на новую строку в терминале код из CVAVR в примере на заглавной страничке
http://www.radiokot.ru/forum/viewtopic. ... 0878#90878
Да и в PROTEUS есть пример ONE-WIRE сделан на CVAVR и тоже номера 1-wire устройств с новых строк выводит.
ИЗУЧАЙТЕ !
Не надо лезть в то что ПРАВИЛЬНО работает !ARMag писал(а): где библиотеку подправить
2 ARV:
я и имел в виду С++
2 ikarab:
я же написал, что систему налаживаю двумя способами, в протеус и на реальном устройстве (mega8 + max232 + Advanced Serial Port Monitor), и оба выдают один и тот же результат. я нашел символ переноса ASCII в WinAVR для перехода на н.с. - 10 (0х0А).
Кидаю его в патчар - никакого результата, хотя другие символы выводит без проблем. Ошибка в какой-то с библиотек, имхо. У кого-то стоит эта версия (последняя, если я не ошибаюсь). Проверте, пожалуйста!
я и имел в виду С++
2 ikarab:
я же написал, что систему налаживаю двумя способами, в протеус и на реальном устройстве (mega8 + max232 + Advanced Serial Port Monitor), и оба выдают один и тот же результат. я нашел символ переноса ASCII в WinAVR для перехода на н.с. - 10 (0х0А).
Кидаю его в патчар - никакого результата, хотя другие символы выводит без проблем. Ошибка в какой-то с библиотек, имхо. У кого-то стоит эта версия (последняя, если я не ошибаюсь). Проверте, пожалуйста!
- Реклама
- Сообщения: 828
- Зарегистрирован: Пн мар 16, 2009 21:40:57
Проекты прицепите в архиве - проверят.ARMag писал(а): У кого-то стоит эта версия (последняя, если я не ошибаюсь). Проверте, пожалуйста!
Выкинте из них все что к выводу не относится.
Я рекомендую использовать CVAVR 1.25.9 - код компактней чем у CVAVR2 получается.
И ! вы ж можете листинг АСМа позыриь .lst - что там выводить быдет.
я прям не знаю, что делать, только что 2 часа пытался устранить ошибку эту, поставил старую версию CVAVR-a (1.25.9) - никакого результата, удалил всё, что было связвно с С++, BDE 5.02, CVAVR, WinAVR... Удалил все папки, всё что было.... Поставил заново CVAVR - опять тоже самое! Уже и проект создал новый, и так, и сяк его - ну не хочет он упорно переносить на новую строку, хоть убей его. Наверное, что-то у винды слетело 
- Сообщения: 828
- Зарегистрирован: Пн мар 16, 2009 21:40:57
Дак символы то переноса приходят на COM порт ? Можете просто символ в UDR (проверить название регистра USART по даташиту) скопировать.
Прицепите проект.
Код: Выделить всё
while (1){
пауза для передачи
UDR = 0x0A;
пауза для передачи
UDR = 0x55;
};Прицепите проект.
Последний раз редактировалось ikarab Вт мар 24, 2009 20:44:43, всего редактировалось 1 раз.
- Сообщения: 828
- Зарегистрирован: Пн мар 16, 2009 21:40:57
выход COM со входом соедините резистором 1 кОм (2 и 3 вывод в 9 штырьковом) и шлите из терминала или прог данные - они обратно должны возвращаться.ARMag писал(а): Наверное, что-то у винды слетело
та с портом всё нормально. с компилятором что-то не то. он просто в прошивку не хочет шить ни перехода, ни табуляцию
. в Протеусе то тоже не работает, если бы что-то с портом было, в Протеусе симулировалось бы ништяк... А винду я имел в виду, то, что библиотека виндовская накрылась, которую использует компилятор, т.к. переустановка квавра не помогла...
2 ikarab: мож пришли мне в лс аську, что б быстрее было?
2 ikarab: мож пришли мне в лс аську, что б быстрее было?
- Сообщения: 828
- Зарегистрирован: Пн мар 16, 2009 21:40:57
Выложите ваш проект ТОЛЬКО вывод символов ! я проверю у себя.
в очередно раз спрошу- вы в АСМ листинге то смотрели ? Есть эти символы если вы их явно в проге пишите ? Закидывает он их в UDR ?ARMag писал(а): с компилятором что-то не то. он просто в прошивку не хочет шить ни перехода, ни табуляцию
я писал выше, что в асме я не силён, потому листинг мне, что радио слушать....
смотрел в библиотеке ф-цию патс, там тоже переход явно задается строкой рutchar(10);
сам патчап написан на асме и для меня не понятен
вот кусок проги:
printf("\t Test \n");
putchar(10);
printf("%p\t\n","Test");
putchar(0x0A);
printf("%s\t\n","Test");
смотрел в библиотеке ф-цию патс, там тоже переход явно задается строкой рutchar(10);
сам патчап написан на асме и для меня не понятен
вот кусок проги:
printf("\t Test \n");
putchar(10);
printf("%p\t\n","Test");
putchar(0x0A);
printf("%s\t\n","Test");
- Сообщения: 828
- Зарегистрирован: Пн мар 16, 2009 21:40:57
может надо \r
я не могу помочь вам без вашего проекта. Чем я вам помогу то ?
Будет ваш проект я его откомпиля у себя в CVAVR и сообщк результат. Я ж не телепат.
Выше я дал вам прямой код загрузки в USART - его и попробуйте.
Или вот попробуйте проект из прицепа - это пример набор готовых проектов для CVAVR VMLAB PROTEUS с работающими PWM USART с различными способами вывода и приемом информации - можно использовать для проверки и быстрого теста кусков кода.
я не могу помочь вам без вашего проекта. Чем я вам помогу то ?
Будет ваш проект я его откомпиля у себя в CVAVR и сообщк результат. Я ж не телепат.
Выше я дал вам прямой код загрузки в USART - его и попробуйте.
Или вот попробуйте проект из прицепа - это пример набор готовых проектов для CVAVR VMLAB PROTEUS с работающими PWM USART с различными способами вывода и приемом информации - можно использовать для проверки и быстрого теста кусков кода.
- Вложения
-
- avr.rar
- (80.95 КБ) 265 скачиваний
Последний раз редактировалось ikarab Ср мар 25, 2009 11:10:33, всего редактировалось 2 раза.
О, аллилуя!!!!
\r ЗАРАБОТАЛ!!!
ikarab - ОГРОМНОЕ спасибо!!!!
зы: а когда это \n на \r сменилось?! что-то я пропустил...
\r ЗАРАБОТАЛ!!!
ikarab - ОГРОМНОЕ спасибо!!!!
зы: а когда это \n на \r сменилось?! что-то я пропустил...
- Сообщения: 828
- Зарегистрирован: Пн мар 16, 2009 21:40:57
Ну и слава богу.ARMag писал(а):О, аллилуя!!!! \r ЗАРАБОТАЛ!!! ikarab - ОГРОМНОЕ спасибо!!!!
Да вроде всегда и было. С незапамятных времен еще.ARMag писал(а):зы: а когда это \n на \r сменилось?!
что-то я пропустил...
просто странно, с 7 класса на С++ программирую и ниразу не видел (а может просто не обращал внимания по ненадобности) на \r. Сколько книжек перечитал, примеров и апноутов пересмотрел... странно.
Ладно, спасибо, совершенству нет предела
будем дальше учиться!
Ещё раз спасибо!
Ладно, спасибо, совершенству нет предела
Ещё раз спасибо!
скорее всего проблема в том, как по умолчанию терминал интерпретирует символы "перевод строки" \n и "возврат каретки" \r. Например, для Windows и MS DOS характерно обязательное наличие обоих символов, т.е. \n\r, для UNIX-подобных систем хватает и одного (какого именно - я не в курсе).
Для WinAVR специально оговорено в документации, что для корректного вывода строк на Windows-терминал необходимо вручную дополнять каждый символ \n символом \r, в то время как реализации Си и С++ для Windows делают это автоматически.
Для WinAVR специально оговорено в документации, что для корректного вывода строк на Windows-терминал необходимо вручную дополнять каждый символ \n символом \r, в то время как реализации Си и С++ для Windows делают это автоматически.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Ничего себе, как всё запущено... Буду знать.ARV писал(а):скорее всего проблема в том, как по умолчанию терминал интерпретирует символы "перевод строки" \n и "возврат каретки" \r. Например, для Windows и MS DOS характерно обязательное наличие обоих символов, т.е. \n\r
Век живи - век учись!
- Сообщения: 828
- Зарегистрирован: Пн мар 16, 2009 21:40:57
Есть разные способы и их надо проверять. Кто пишет что в CVAVR pragma +rl работает, кто пишет что нет.ExtaZy писал(а):Подскажите пожалуйста как в CVAVR перекодировать русский текст чтоб он на дисплее выводился потом?
на руссифицированой hd-ке по русски так:
Код: Выделить всё
#pragma rl+ //перевод экрана на русскоязычное отображение
lcd_gotoxy(4,0); //местоположение курсора
lcd_putsf("Здраствуйте"); //вывод текста
#pragma rl- //Перевод экрана на английское отображение


