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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Проблема с UART в LPC2103
EXeGLuMATOR
сообщение Aug 24 2006, 21:29
Сообщение #16


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

Группа: Свой
Сообщений: 182
Регистрация: 30-01-05
Из: Volgograd
Пользователь №: 2 305



Добро, зло... Гесер, Завулон... Эх... Вы, господин так ничего и не поняли... Специально потратил время на попробовать...

код
void puts11(const char *Mes, int Len)
{
int i;
for(i=0; i<Len; i++, Mes++)
{
while (!(U1LSR & ULSR_THRE));
U1THR = *Mes;
while (!uart1TxEmpty()) while (!(U1LSR & ULSR_THRE));
};
}
работает корректно. Полностью корректно.

код
void puts11(const char *Mes, int Len)
{
int i;
for(i=0; i<Len; i++, Mes++)
{
while (!(U1LSR & ULSR_THRE));
U1THR = *Mes;
};
}

Который собсно и есть то, что Вы предложили - работает некорректно, поскольку не отслеживает правильно опустошение буфера передачи, почему - отдельная тема, но так есть. Проверь то, что Вы написал wink.gif в работе, хотя-бы на симуляторе, убедишься. Застревает последний байт сообщения.
Понимаю конечно, что ваш вариант передачи полностью передран из примеров и верен по определению, но надо иметь и воображение.

Добро... Зло... Хвост!!! wink.gif
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 24 2006, 21:49
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(EXeGLuMATOR @ Aug 25 2006, 00:29) *
Специально потратил время на попробовать...

Рекомендую еще потратить время на разборки с тем где в "попробовать" ошибка вышла.
Одно радует, что исходный код уже причесали :-). Осталось муть голубую выкинуть:
Цитата
while (!uart1TxEmpty()) while (!(U1LSR & ULSR_THRE));

Если вдруг "проблемы" - то не сочите за труд осмотреть сгенеренный код, посмотреть на Ваше определение U1LSR и прочитать про "volatile".


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
EXeGLuMATOR
сообщение Aug 25 2006, 17:27
Сообщение #18


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

Группа: Свой
Сообщений: 182
Регистрация: 30-01-05
Из: Volgograd
Пользователь №: 2 305



Цитата(zltigo @ Aug 25 2006, 01:49) *
Цитата(EXeGLuMATOR @ Aug 25 2006, 00:29) *

Специально потратил время на попробовать...

Рекомендую еще потратить время на разборки с тем где в "попробовать" ошибка вышла.
Одно радует, что исходный код уже причесали :-). Осталось муть голубую выкинуть:
Цитата
while (!uart1TxEmpty()) while (!(U1LSR & ULSR_THRE));

Если вдруг "проблемы" - то не сочите за труд осмотреть сгенеренный код, посмотреть на Ваше определение U1LSR и прочитать про "volatile".



Мда.. бывают же люди... Понты, понты... И круче только яйца... А из аргументов - "такого не может быть, потому что не может быть никогда!". Неконструктивно. Считаете что так неправильно - ну так объясните убогим и тупым в чем проблема! Спуститесь с небес на нашу грешную! Где конструктивная критика? Конструктивные замечания? А так - ну считайте... флаг, барабан, все аксессуары. Одна вода и абстракция... wink.gif А код причесывать - это после того как он заработает. Код на этапе разработки и релиз - две большие разницы.

Думаю в данной теме все всё для себя выяснили. Хватит Вам уже за строгого клоуна работать - народ развлекать.

Сообщение отредактировал EXeGLuMATOR - Aug 25 2006, 17:29
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 25 2006, 17:46
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(EXeGLuMATOR @ Aug 25 2006, 20:27) *
- ну так объясните убогим и тупым в чем проблема!

Уже отвечал. Повторяю для "особо"....
Это главная "проблема":
Цитата
что написали Вы одно, думаете, что написали другое, а сюда постите третье :-(

Это что делать:
Цитата
то не сочите за труд осмотреть сгенеренный код, посмотреть на Ваше определение U1LSR и прочитать про "volatile"


Если для Вас это пустой звук - продалжайте стучать в бубен, только не надо своими "открытиями" сделанными в "результате" "делится".


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
serj_obninsk
сообщение Sep 4 2006, 12:28
Сообщение #20


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 15-05-06
Пользователь №: 17 104



zltigo, не сочтите за труд разъяснить, чем грозит отсутствие volatile? "Оптимизацией" со стороны компилятора, который будет принимать U1LSR за обычную ячейку памяти? Я в правильную сторону думаю?
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 4 2006, 18:58
Сообщение #21


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(serj_obninsk @ Sep 4 2006, 15:28) *
чем грозит отсутствие volatile? "Оптимизацией" со стороны компилятора, который будет принимать U1LSR за обычную ячейку памяти?

Да и будет выбрасывать циклическое чтение.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
EXeGLuMATOR
сообщение Sep 11 2006, 18:19
Сообщение #22


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

Группа: Свой
Сообщений: 182
Регистрация: 30-01-05
Из: Volgograd
Пользователь №: 2 305



О! Пошел конструктив! Это радует. Значит таки можно с Вами общаться.


Цитата
то не сочите за труд осмотреть сгенеренный код, посмотреть на Ваше определение U1LSR и прочитать про "volatile"



Наше определение - это то что в LPC2103.h Все там определено. Компилер - Кейл. CARM. Соотв все из его поставки.
#define U1LSR (*((volatile unsigned char *) 0xE0010014))

Что не так?
Go to the top of the page
 
+Quote Post
EXeGLuMATOR
сообщение Sep 11 2006, 20:23
Сообщение #23


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

Группа: Свой
Сообщений: 182
Регистрация: 30-01-05
Из: Volgograd
Пользователь №: 2 305



Кстати, опять аналогичные проблемы - теперь при приеме потока по сериалу... Причем как-то странно все... Кто может знает, есть ли особенности компилятора какие? А то что-то подозрительно... Кстати, есть у кого описание startup.s ? Просто очень странно - еще и таймеры 2 и 3 не инициализируются - вылетает по ошибке... А они таки есть...
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 07:55
Рейтинг@Mail.ru


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