roboforum.ru

Технический форум по робототехнике.
Текущее время: 30 ноя 2024, 13:52

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




Начать новую тему Ответить на тему  [ Сообщений: 102 ]  На страницу Пред.  1 ... 3, 4, 5, 6, 7
Автор Сообщение
 Заголовок сообщения: Re: Драйвер двух двигателей управляемый по I2C, UART
СообщениеДобавлено: 21 мар 2011, 22:18 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
Duhas писал(а):
совет один - написать нормально обработчики прерываний или работу с флагами.. смотря как там у вас.. чтобы все успевало сработать...

Вот именно ЮСАРТ я хочу сделать без прерываний (если это возможно конечно), потому что i2c и UART одновременно на прерываниях будут КМК дюже сильно отжигать. В общем-то i2c в моем исполнении уже жгет ого-го как....

Для того, чтобы убедиться, что виноват не ком-порт и не библиотека qextserial, цапанул контроллер через роутер. Таки да, строка его вводит в ступор. Пойду ловить....

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Драйвер двух двигателей управляемый по I2C, UART
СообщениеДобавлено: 22 мар 2011, 03:33 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
Что-то какая-то мистика. Из консоли все работает ОК. Из ОРФА-терминала чуть-чуть поработает и залипает - перестает реагировать на команды. Делаю дисконнект - освобождаю порт. И подключаюсь путти. В путти тишина. Но как только ввожу первую команду, путти как бы пропушивает все предыдущие "залипшие" команды:

s1Aps4s
s4F
s4B
s4>
s4<
s4;
s4:
s4;
s4<
s4>
s4@
s4A
s4C
s4E
s4F
s4G
Es4
s4I
s5K
s5Q
s5K
s5Q
s5K
s5Q
s5K
s5Q
s5K

Что за фигня? Откуда они берутся? Не пойму, то ли они где-то в буффере сидят на компе, то ли моя прошивка пропускает символы окончания строки, т.е. "Pp\r\n\0" и шьет все в одну строку, а когда я с консоли "медленно" ввожу по символу, оно конец строки таки ловит и парсит всю строку на команды?

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Драйвер двух двигателей управляемый по I2C, UART
СообщениеДобавлено: 22 мар 2011, 03:38 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Ну вы код бы что-ли показали... ;)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Драйвер двух двигателей управляемый по I2C, UART
СообщениеДобавлено: 22 мар 2011, 11:01 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
Подобрал портянки

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Последний раз редактировалось dccharacter 24 мар 2011, 00:18, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Драйвер двух двигателей управляемый по I2C, UART
СообщениеДобавлено: 22 мар 2011, 13:01 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Клево. Теперь надо закомментировать половину и посмотреть, исчезнет ли глюк. Потом еще половину и т.д. :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Драйвер двух двигателей управляемый по I2C, UART
СообщениеДобавлено: 22 мар 2011, 13:04 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
Michael_K писал(а):
Клево. Теперь надо закомментировать половину и посмотреть, исчезнет ли глюк. Потом еще половину и т.д. :)

Ага, вчера весь вечер занимался :-)))

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Драйвер двух двигателей управляемый по I2C, UART
СообщениеДобавлено: 24 мар 2011, 00:15 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 09 фев 2006, 15:36
Сообщения: 3339
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков
Не выкладывай такие портянки в пост! Аттач!

_________________
Linux user | Firefox user


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Драйвер двух двигателей управляемый по I2C, UART
СообщениеДобавлено: 24 мар 2011, 00:19 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
Проблема решилась введением кольцевого буфера. UART работает супер.

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Драйвер двух двигателей управляемый по I2C, UART
СообщениеДобавлено: 03 апр 2011, 02:05 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
О сколько нам открытий чудных готовит просвещенья путь!

У меня в контрол регистре есть адрес - 0х00, как и в любом массиве. А также, например, вращение двигателя изменяется - в одну сторону чтобы крутилось присылаем НЕ ноль, а в другую - ноль.

Стоп! Присылаем 0? Ага. щаз! Оказывается, что 0х00 и '\0' - одно и то же (кто бы могу подумать?!?!?! Ну уж точно не человек, прочитавший хоть раз proavr.narod.ru). Ну а я сижу, упорно пихаю в UART в середине пакета команд нуль-терминатор и удивляюсь - ЧЕ Ж ОНО НЕ РУЛИТСЯ-то???

Спас сниффер ком-порта. Без него я бы еще неделю башкой об клаву бился.

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Драйвер двух двигателей управляемый по I2C, UART
СообщениеДобавлено: 03 апр 2011, 03:25 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Уарту-то какая разница, причем тут уарт вообще?
Уарт ноль передаст без проблем, если попросят.
Проблемы в вашем/библиотечном коде, который его
не просит почему-то (наверное строку с терминатором ждет на входе).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Драйвер двух двигателей управляемый по I2C, UART
СообщениеДобавлено: 03 апр 2011, 03:45 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
Логично.
Дело на самом деле в этом:

QString MainWindow::doCmd(QString cmd) <-- раз
port->write(cmd.toAscii(),cmd.length()); <-- два

Добавлено спустя 4 минуты 35 секунд:
А заодно разобрался с помощью товарищей с microchip.su как забубенить реверс на CCP (без хардварного инверта полярности - кому интересно - вот тема: http://www.microchip.su/showthread.php?t=11618) - четверть дела сделана.

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Драйвер двух двигателей управляемый по I2C, UART
СообщениеДобавлено: 01 май 2011, 18:07 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
Сделал вторую версию регуля. Распаял, все замечательно завелось (ну как все - пока проверил ICSP, UART, оба движка и управление)

Из косяков - забыл, что электролит 50В на 100 мкФ занимает чуть больше места (раз этак в восемь), чем 10В 100 мкФ. В итоге на плату влез только 200мкФ кондер. Мужики засмеют...

Ну и еще, кажись, ступил, повесив у одного энкодера оба выхода на прерывания по изменению, а у второго - ни одного. В остальном - живем! Аппаратный реверс, все дела...

Вся эта красотень пойдет в связке с роутером wl500gP и допиленным орфа-терминалом бродить по дому.

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 102 ]  На страницу Пред.  1 ... 3, 4, 5, 6, 7

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


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

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


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

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO