Easyelectronics.ru

Электроника для всех
Текущее время: 26 мар 2017, 00:32

Часовой пояс: UTC + 5 часов



    • Изготовление печатных плат
    • Создание принципиальных схем и проектирование печатных плат
    • Симуляция работы на spice моделях
    • Просмотр GERBER файлов

Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: ATsam4s16c UDI CDС Терминал (novice level)
СообщениеДобавлено: 20 сен 2013, 13:24 
Только пришел

Зарегистрирован: 20 сен 2013, 12:53
Сообщения: 5
Откуда: msk
добрый час!
на SAM4S XPLAINED создал USB CDC устройство , и пытаюсь через extension Terminal Window общаться с ним.
не выходит..

по идее должно быть так: я пишу в терминал "А" , получаю оттуда "ААА". всё .

вот код:

Show


терминал просто молчит в ответ. лампочки исправно зажигаются.
посмотрев обучающее видео, нашёл там такой кусок кода.. не знаю, нужен ли он мне, но в любом случае с ним ничего не меняется:

Show


может быть дело в этих \n \r ? в терминале к тому же есть кнопочки LF , CR ... кодировка стоит ANSII.

заранее спасибо за помощь!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ATsam4s16c UDI CDС Терминал (novice level)
СообщениеДобавлено: 20 сен 2013, 13:43 
Старожил

Зарегистрирован: 15 янв 2013, 13:24
Сообщения: 5665
Попробуйте посылать не просто "A" (один байт), а строку вместе с LF("A\n") или CR("A\r") или CR+LF("A\r\n"). Какой-то вариант может сработать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ATsam4s16c UDI CDС Терминал (novice level)
СообщениеДобавлено: 20 сен 2013, 16:03 
Только пришел

Зарегистрирован: 20 сен 2013, 12:53
Сообщения: 5
Откуда: msk
AlexPM писал(а):
Попробуйте посылать не просто "A" (один байт), а строку вместе с LF("A\n") или CR("A\r") или CR+LF("A\r\n"). Какой-то вариант может сработать.


попробовал. во-первых, там кавычки вместо двойных кажется должны быть одинарными. никакого эффекта не получил!

если поставить в петлю
delay_ms(500);
Led_On(LED0_GPIO);
до выхода на if , то лампа мигает , что странно - разве не должен он ожидать udi_cdc_getc ?? как будто он его просто игнорирует


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ATsam4s16c UDI CDС Терминал (novice level)
СообщениеДобавлено: 20 сен 2013, 16:22 
Старожил

Зарегистрирован: 15 янв 2013, 13:24
Сообщения: 5665
Кавычки в терминале ввобще не вводите никакие - ни двойные, ни одинарные. Это я для наглядности кавычки нарисовал: чтобы видеть, чтО посылается.

В коде у Вас тоже, наверно, неправильно двойные кавычки применены:
Код:
if (udi_cdc_get()!="A")
, для одного байта-символа должны быть одинарные кавычки (апострофы). А если подразумевается не символ, а действительно строка - тогда операция сравнения здесь не должна быть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ATsam4s16c UDI CDС Терминал (novice level)
СообщениеДобавлено: 20 сен 2013, 16:47 
Только пришел

Зарегистрирован: 20 сен 2013, 12:53
Сообщения: 5
Откуда: msk
AlexPM писал(а):
Кавычки в терминале ввобще не вводите никакие - ни двойные, ни одинарные. Это я для наглядности кавычки нарисовал: чтобы видеть, чтО посылается.

В коде у Вас тоже, наверно, неправильно двойные кавычки применены:
Код:
if (udi_cdc_get()!="A")
, для одного байта-символа должны быть одинарные кавычки (апострофы). А если подразумевается не символ, а действительно строка - тогда операция сравнения здесь не должна быть.


вот в терминале я конечно кавычки не ставил , а эти двойные и имел ввиду как опечатка - в проге стояли одинарные . но нет никакой разницы )

со строкой - а где тогда должны быть операция сравнения ?

попробовал различные комбинации -ноль эффекта


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ATsam4s16c UDI CDС Терминал (novice level)
СообщениеДобавлено: 20 сен 2013, 17:10 
Старожил

Зарегистрирован: 15 янв 2013, 13:24
Сообщения: 5665
make.it.fast писал(а):
со строкой - а где тогда должны быть операция сравнения ?
Если в пограмме на самом деле стоят не кавычки, а апострофы вокруг буквы A, то сравнение (оператор "!=") с одиночным символом записано корректно.
В случае двойных кавычек (как у Вас в опечатке написано) "A" - это не код символа A, а строка - двухбайтовый одномерный массив, в первом байте код буквы, во втором байте бинарный ноль - признак конца строки. Строки в чистом Си сравнивают по-другому.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ATsam4s16c UDI CDС Терминал (novice level)
СообщениеДобавлено: 23 сен 2013, 10:41 
Только пришел

Зарегистрирован: 20 сен 2013, 12:53
Сообщения: 5
Откуда: msk
изначально были одинарные кавычки. потом я пробовал разные комбинации. пробовал отправлять число(

что дальше делать не знаю (

терминал не работает , мне кажется дело всё таки в каких то пинах , отвечающих за UART


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ATsam4s16c UDI CDС Терминал (novice level)
СообщениеДобавлено: 30 окт 2013, 10:32 
Только пришел

Зарегистрирован: 20 сен 2013, 12:53
Сообщения: 5
Откуда: msk
со встроенным терминалом я разобрался , но теперь решил усложнить задачу - написать программу хост и обмениваться данными через неё! есть у кого-то идеи, как это можно реализовать на этой плате? получалось раньше сделать на атмега644р , но там через уарт всё , побитово надо было выставлять флаги и тп.

спасибо , жду ответ , тему буду поднимать )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ATsam4s16c UDI CDС Терминал (novice level)
СообщениеДобавлено: 30 окт 2013, 13:23 
Старожил

Зарегистрирован: 15 янв 2013, 13:24
Сообщения: 5665
make.it.fast писал(а):
решил усложнить задачу - написать программу хост и обмениваться данными через неё! есть у кого-то идеи, как это можно реализовать на этой плате? получалось раньше сделать на атмега644р
Вы на ATmega644 делали USB-host??! И с какими девайсами он мог работать?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB