А почему они должны мигать? Посмотри на схему Arduino и поймешь что они ни как не участвуют в этом процессе. Светодиоды подключены к микросхеме FTDI и мигают только при обмене данными с компьютером
А почему они должны мигать? Посмотри на схему Arduino и поймешь что они ни как не участвуют в этом процессе. Светодиоды подключены к микросхеме FTDI и мигают только при обмене данными с компьютером
О как! Это надежда свыше прямо))) Сегодня прийду и попробую помигать какой нибудь лампочкой, если что-нибудь из порта читаеться... Кстати еще вопросик: Когда мы открываем порт на ардуино, мы пишем Serial.begin(9600); Но какие настройки порта при этом выставляются? какой парити бит? Я точно знаю что на PC я ставлю Even parity. Может ли это влиять?
А разве у I-Bus K-Bus скорость 9600?
Параметры порта посмотри в библиотеке HardwareSerial
Последний раз редактировалось Chip; 11.03.2012 в 16:01.
Ну на PC я открываю порт с этой скоростью,вроде работает. Ок попробую глянуть. Кстати я использую TX и RX пины, которые я так понил задействованы и для USB, если я подключаю адаптер от +5 стабильного источника, они корректно будут работать? Если да, то можно ли в параллель открыть на чтение порт через ЮСБ, чтобы посмотреть что там в целях отладки?
Эти пины можно использовать для обмена с другими устройствами, но вот в паралель с FTDI наверно не выйдет , так как данные идущие от EBU будут конфликтовать с даннами с FTDI
Последний раз редактировалось Chip; 11.03.2012 в 16:19.
В общем снова добрались руки до ардуинки, подключил доп светодиод для дебага, и проверил идут ли данные, с сериального порта. И вот на тебе, диод горел не переставая до тех пор пока БМВ монитор не впал в спящий режим. Нажимаю на кнопки и на каждое нажатие диод реагировал. Далее я вставил условие, чтобы мигать если источник монитор (а он монитор).
buf[cnt++] = Serial.read();
if (buf[cnt - 1] == 0xF0) {
debug_blink();
}
как результат, не одного блинка ((( Тут я не могу понять, что я там читаю. Все пакеты от монитора имеют F0. В чем может быть дело? Parity не то?
Может из за того что я вместо 5 КОМ резисторов поставил 5.1? Я даже посмотреть не могу т.к сериалка занята ((((
Последний раз редактировалось darkduke; 15.03.2012 в 21:13.
Код не рабочий или не полный, и просьба код заключать в тег PHP
Последний раз редактировалось Chip; 15.03.2012 в 21:25.
Резистор не может влиять
Тут нужно принять весь пакет и потом его разбирать
Так и делаю, у меня идет поток данных и заноситься в массив (cnt++), и на каждой итерации идет проверка массива на хотя бы один валидный пакет. Мало того, если я подключаю ардуино через ЮСБ порт к компу и посылаю в сериалку полноценный пакет, то все норм парсится и работает. Но если я подключаю к доп плате (адаптеру), то судя по дебаг диоду пакеты идут, но коды символов явно не те, т.е. 100% данные просто искажаются. В моем случае условие buf[cnt -1] == 0xF0 должно выполняться т.к. все пакеты от монитора имеют src == 0xF0. Вот в этом и засада (
Эту тему просматривают: 2 (пользователей: 0 , гостей: 2)