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

 
 
> BasicUSB на AT91SAM7S, Если забыть о прерываниях, какие замечены проблемы
Master
сообщение Dec 15 2006, 10:51
Сообщение #1


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

Группа: Новичок
Сообщений: 170
Регистрация: 26-05-05
Из: Москва
Пользователь №: 5 405



Здравствуйте!

Точнее, пример называется AT91SAM7S-BasicUSART_USB.

Никак не могу понять пока, в чём дело: чтение из USB проходит на ура, а вот запись при втором вызове вешает и проц, и терминалку.

Может кто в курсе, где собака порылась? cranky.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
_4afc_
сообщение Dec 19 2006, 10:04
Сообщение #2


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

Группа: Свой
Сообщений: 1 262
Регистрация: 13-10-05
Из: Санкт-Петербург
Пользователь №: 9 565



Цитата(Master @ Dec 15 2006, 10:51) *
Точнее, пример называется AT91SAM7S-BasicUSART_USB.

Никак не могу понять пока, в чём дело: чтение из USB проходит на ура, а вот запись при втором вызове вешает и проц, и терминалку.


Запись контроллером в терминалку? Незнаю.

У меня были проблемы если я не вычитал пришедшие байты, а ждал новых - естественно дальше ничего не шло. Так что возможно дело в вашем цикле обмена с терминалкой.

Вообще-то я пример не проверял, выдрал из него код и всё. USB чувствителен к частоте процессора и времени включения. У меня надёжней его было включать сразу с установкой ФАПЧ.

Кстати не забывайте всё время проверять статус или isconfigured перед выполнением команд USB.
Go to the top of the page
 
+Quote Post
Master
сообщение Jan 7 2007, 01:16
Сообщение #3


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

Группа: Новичок
Сообщений: 170
Регистрация: 26-05-05
Из: Москва
Пользователь №: 5 405



Цитата(_4afc_ @ Dec 19 2006, 10:04) *
У меня были проблемы если я не вычитал пришедшие байты, а ждал новых - естественно дальше ничего не шло. Так что возможно дело в вашем цикле обмена с терминалкой.

Вообще-то я пример не проверял, выдрал из него код и всё. USB чувствителен к частоте процессора и времени включения. У меня надёжней его было включать сразу с установкой ФАПЧ.

Кстати не забывайте всё время проверять статус или isconfigured перед выполнением команд USB.

Спасибо за ответ! Не ожидал, что кто-нибудь ответит smile.gif
Код - из примера. Считаем, что суть не менялась. Добавилась только посылка хосту:
Код
while( 1 ){
    length = pCDC.Read(&pCDC, data, MSG_SIZE);
    data[ length ]=0;
    Trace_Toggel_LED( LED1);
    AT91F_US_Put(data);
    if ( length != 0 )
        pCDC.Write( &pCDC, "\n\r012345678901234567890123456789", 32 );    // Вот эта посылка добавлена
}

Что не правильно? Вообще могу ли я (...вспомнился анекдот...) вообще делать посылку хосту без предупреждения?
Go to the top of the page
 
+Quote Post
nameless
сообщение Jan 8 2007, 14:51
Сообщение #4


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

Группа: Свой
Сообщений: 174
Регистрация: 9-07-04
Пользователь №: 305



А Вы уже видели, что "терминалка" из примера хочет именно столько же байт сколько отправила.
про isconfigured уже сказали, но у меня другая проблема - не знаю как сделать все это по прерываниям. Нет ли "максимально простого" примера. Понять хотябы на какое именно событие вешать isconfigured и read......
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 04:50
Рейтинг@Mail.ru


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