Форум myROBOT.ru » Лаборатория » Электронная мастерская » BlueTooth HC_05

Страниц (2): « 1 [2]
 

16. rgsv - 13 Декабря, 2012 - 09:43:35 - перейти к сообщению
elmot пишет:
usb-uart есть?

нету. Хотел по БТ связываться.

Больше всего напрягает момент , что в режиме АТ связь идёт нормально
17. rgsv - 16 Декабря, 2012 - 16:54:22 - перейти к сообщению
В общем заработало , но совершенно не понятно.
Обмен данным стал идти без ошибок, когда я поставил скорость 9600. Так так , не надо в меня кидать булыжники!!!
АТ режим при этом перестал работать! Не отвечает и параметры не ставит.
После того как вернул 38400 АТ режим снова заработал, но при приёме данных опять пошла мура.

В общем получил компот который не описан по манулам.
Если нужет режим АТ надо ставить скорость 38400.
Если Usart то 9600.
Кстати в ответ на запрос текущих параметров скорости модуль возвращает (0)
18. elmot - 16 Декабря, 2012 - 21:10:37 - перейти к сообщению
ну отлично. подыми ему скорость до 38400 и забудь об этих заморочках.
19. rgsv - 17 Декабря, 2012 - 09:22:14 - перейти к сообщению
Да я оставил на 9600 пока.
Имя поменял ПИН поменял. В общем то AT мне и не нужны больше.
если 9600 будет не хватать тогда и думать буду.
20. elmot - 17 Декабря, 2012 - 11:38:50 - перейти к сообщению
при таких раскладах hc-06 удобнее
21. rgsv - 17 Декабря, 2012 - 12:43:21 - перейти к сообщению
В чём отличие? Понимаю что должен убить пару дней на поиск даташита и ещё пару на его полное вычитывание. Однако спросить у вас быстрее Улыбка Улыбка Улыбка
Со скоростью , это пока 9600. дальше будет видно по ситуации.
22. elmot - 17 Декабря, 2012 - 14:20:38 - перейти к сообщению
hc-06 - физически тоже самое, но прошивка попроще. только клиент, нету пина включения at команд. пока никто не прицепился, мы в режиме AT, когда прицепился - все, тупо buetooth-uart мост. Команд - самый минимум. пин, имя, скорость.
23. rgsv - 19 Декабря, 2012 - 00:53:17 - перейти к сообщению
Попытался прикрутить на робота и выпал в осадок.

На крутил много кода, не работает. Вычленил суть. Не работает.
CODE:


#include <util/delay.h>
#include <avr/io.h>
#include <avr/interrupt.h>
unsigned char smb = 0;

ISR( USART_RXC_vect )
{
smb = UDR ;
while(!(UCSRA & (1<<UDRE)));
UDR = smb;

}

int main(void) {
UBRRH = 0;
UBRRL = ( F_CPU/( 16UL*9600 ) ) - 1;
UCSRB = (1<<RXCIE)|(1<<RXEN)|(1<<TXEN);
UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);
sei();

// define pd4 as output
// DDRD |= (1 << LED);


while (1) {

_delay_ms(10);

}
return 0;
}



Работает на Mega8 на железке и в Протеусе.
Но не работает на Мега32(который у меня на борту у робота). Контроллер вешается (не мигает диагностический диод ). Протеус говорит про ошибку доступа к памяти.
Компилятор winavr (avg-gcc)
-mmcu= mega8 (mega32) задаю корректно. Код 3 строки а понять не могу. кажется что то с прерываниями не то.
24. rgsv - 20 Декабря, 2012 - 15:06:31 - перейти к сообщению
Всё вопрос снят. При линковке не был указан -mmcu atmega32.
А этот гад и не вякал. Ликовал как для mega8 по этому на 8 всё работало