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

 
 
> Помогите разобратся с ICC AVR 7, В 6й версии работало, в 7й - ошибка
Pyku_He_oTTyda
сообщение Dec 22 2005, 05:51
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 751
Регистрация: 4-08-05
Из: Великие Луки
Пользователь №: 7 360



Осваиваю Си по примерам с [banned], пока работал на шестой версии ICC, все было хорошо.
Вчера поставил седьмую версию, и она стала ругатся на этот фрагмент:

putchar('R');
putchar('x');

говорит: !ERROR file 'work03.0':undefined symbol '_putchar'

как эта процедура прописывается в седьмой версии? Тыкните носом!

На всякий случай прикладываю текст программы
Прикрепленные файлы
Прикрепленный файл  work.txt ( 1.38 килобайт ) Кол-во скачиваний: 64
 


--------------------
Андрей Смирнов
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Laksus
сообщение Dec 27 2005, 23:13
Сообщение #2


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

Группа: Участник
Сообщений: 146
Регистрация: 16-05-05
Пользователь №: 5 069



_______________
Цитата
Что то у меня ничего не получаетсяsad.gif, а никто не помощет исправить исходник, который в первом сообщении лежит?
Laksus Дата Dec 25 2005, 21:26

_______________
Во первых вот Прикрепленный файл  uart_ICC7.zip ( 1.45 килобайт ) Кол-во скачиваний: 143
проверенный, т.е. работающий, (AT90S2313, 4.0MHz) исходник,
с оставленными правками.

Во вторых:
Мой предыдущий совет был непроверен. Основывался на примерах ICC.
Но, когда попробовал на макетке, обнаружилось следующее:
-Когда отправлял 2 символа, то проблем нет как с вариантом
{
UDR=c;
}
так и с вариантом
{
while((USR&0x20)==0);
UDR=c;

}

Но, когда вместо двух символов захотел отправить серию из 12 символов:

putchar('R');
putchar('x');
putchar('0');

putchar('1');
putchar('2');
putchar('3');

putchar('4');
putchar('5');
putchar('6');

putchar('7');
putchar('8');
putchar('9');
то в терминале (http://bray.velenje.cx/avr/terminal,9600 baud)
принималось: ...R9R9R9R9R9... . Причем как без while(), так и с while().


Наверное компилятор оптимизировал функцию и while выбросил,
так как она пустая .
Как правильно решить это я не знаю, но по "колхозному" сделал так:

volatile unsigned char temp1;
void putchar(char c)
{
while ((USR & 0x20) == 0)
{
temp1++;
}
; // UDRE, data register empty
UDR = c;
}

После этого в терминале появилось: ...Rx0123456789Rx...,
что и хотелось.
2005 12 27
Александр

PS После того, как написал это, еще немного поигрался со схемкой.
И обнаружил, что в опциях компилятора стояло
"Не использовать регистры R20...R23".
После того, как убрал галочку, получилось нормально и без volatile...temp1.
Хотя это не должно бы влиять.
Но после обратной установки галочки компилирует все равно правильно без
volatile...temp1. В чем была проблема я так и не понял, какие то глюки.
А без
while((USR&0x20)==0);
в терминале, по прежнему, принимаю только первый и последний символы группы.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Pyku_He_oTTyda   Помогите разобратся с ICC AVR 7   Dec 22 2005, 05:51
- - haker_fox   Цитата(Pyku_He_oTTyda @ Dec 22 2005, 13:5...   Dec 22 2005, 06:36
- - Serega Doc   Простите за offtop Но если это ваши первые пробы ...   Dec 22 2005, 08:27
|- - defunct   Цитата(Serega Doc @ Dec 22 2005, 10:27) П...   Dec 23 2005, 12:38
|- - Old1   Цитата(defunct @ Dec 23 2005, 16:38) ...i...   Dec 23 2005, 20:51
- - Pyku_He_oTTyda   Serega Doc , я вас поддерживаю, но к сожалению 100...   Dec 22 2005, 08:42
- - Pyku_He_oTTyda   ЦитатаПопробуйте написать так: #include <stdio....   Dec 22 2005, 10:35
- - Serega Doc   А радио базара у вас в городе что нет? Болванка гр...   Dec 22 2005, 13:34
- - Pyku_He_oTTyda   К сожалению... Возят в основном софт - системы, др...   Dec 22 2005, 13:49
- - _artem_   vot zdes tvoja problema : http://www.dragonsgate...   Dec 22 2005, 14:13
- - IgorKossak   Надо определить низкоуровневую функцию вывода _put...   Dec 22 2005, 14:35
- - Pyku_He_oTTyda   Спасибо! буду разбиратся   Dec 23 2005, 05:55
- - defunct   Цитата(Pyku_He_oTTyda @ Dec 22 2005, 07:5...   Dec 23 2005, 12:13
- - _artem_   V tom linke kotorij priveden mnoju naverxu napisan...   Dec 23 2005, 21:58
- - Laksus   _______________________________ defunct Дата Dec 2...   Dec 25 2005, 19:26
- - Pyku_He_oTTyda   Что то у меня ничего не получается, а никто не пом...   Dec 26 2005, 05:44
|- - defunct   Цитата(Pyku_He_oTTyda @ Dec 26 2005, 07:4...   Dec 27 2005, 09:36
- - Pyku_He_oTTyda   Спасибо! Вечером буду пробовать разбиратся.   Dec 28 2005, 05:49
- - Pyku_He_oTTyda   Спасибо Laksus, ваш пример заработал у меня. Тепер...   Dec 29 2005, 07:58


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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 17:49
Рейтинг@Mail.ru


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