Nie wiem, czy to dobry dział, jako że problem nie dotyczy stricte samej atmegi, a jedynie jest używana w tym układzie. Jednak nie mogłem znaleźć bardziej odpowiedniego działu. Jak coś proszę o przeniesienie
Podpiąłem HC-05 pod atmegę, która steruje kilkoma rzeczami. Dla sporego uproszczenia powiedzmy, że zgasza/zapala światło. Komendy AT działają wszystkie (choć działania niektórych trochę nie rozumiem*), więc mogę pracować zarówno w trybie MASTER jak i SLAVE. Pełne spektrum możliwości. Do brzegu - potrzebuję, aby po połączeniu się komórką via BT wysłać krótką komendę zapalenia/zgaszenia światła. Tak więc pierwotnie chciałem w mojej aplikacji nawiązać połączenie z urządzeniem, wysłać komendę, rozłączyć. Niestety jak łączę się apką Bluetooth Terminal łączenie z moim urządzeniem trwa zdecydowanie za długo. Kilka sekund to może nie wieczność, ale w tym czasie zdążę podnieść swe szlachetne dupsko i samemu zgaszę światło. Macie może pomysł jak przyspieszyć proces łączenia? Myślałem, aby jako master zrobić listę urządzeń (AT+INQ), a później w pętli z każdym się BIND-ować, pytać się czy ma zbuforowane dane (timeout 100ms), a następnie przejść do następnego urządzenia. To jednak wydaje mi się średnie, bo pewnie parowanie w drugą stronę tak samo długo trwa. Może więc jest jakiś sposób, aby dać BT w komórce dane, dzięki którym łączenie będzie trwać nie dłużej niż 1 sek? Na co on zużywa tyle czasu podczas łączenia?
* - na AT+INQ reaguje ERROR(1f), ale za to cały czas dostaję +INQ*** z ID znalezionych urządzeń. Do tego od razu próbuje się z nimi parować mimo ustawienia, że ma się tylko z konkretnym urządzeniem łączyć. Na AT+INQC (anulowanie zapytania o urządzenia) odpowiada ciszą, chociaż na inne zawsze coś odpowiada (nawet na nieznane wali ERROR(0)). Z tego co czytam firmware w wersji 2 był bardziej przystępny dla białych ludzi, 3 działa <<dziwnie>>. Jak przy firmware 3 w trybie master wylistować listę urządzeń, a następnie połączyć się z nim? Możliwie najmniej automatycznych działań.
Podpiąłem HC-05 pod atmegę, która steruje kilkoma rzeczami. Dla sporego uproszczenia powiedzmy, że zgasza/zapala światło. Komendy AT działają wszystkie (choć działania niektórych trochę nie rozumiem*), więc mogę pracować zarówno w trybie MASTER jak i SLAVE. Pełne spektrum możliwości. Do brzegu - potrzebuję, aby po połączeniu się komórką via BT wysłać krótką komendę zapalenia/zgaszenia światła. Tak więc pierwotnie chciałem w mojej aplikacji nawiązać połączenie z urządzeniem, wysłać komendę, rozłączyć. Niestety jak łączę się apką Bluetooth Terminal łączenie z moim urządzeniem trwa zdecydowanie za długo. Kilka sekund to może nie wieczność, ale w tym czasie zdążę podnieść swe szlachetne dupsko i samemu zgaszę światło. Macie może pomysł jak przyspieszyć proces łączenia? Myślałem, aby jako master zrobić listę urządzeń (AT+INQ), a później w pętli z każdym się BIND-ować, pytać się czy ma zbuforowane dane (timeout 100ms), a następnie przejść do następnego urządzenia. To jednak wydaje mi się średnie, bo pewnie parowanie w drugą stronę tak samo długo trwa. Może więc jest jakiś sposób, aby dać BT w komórce dane, dzięki którym łączenie będzie trwać nie dłużej niż 1 sek? Na co on zużywa tyle czasu podczas łączenia?
* - na AT+INQ reaguje ERROR(1f), ale za to cały czas dostaję +INQ*** z ID znalezionych urządzeń. Do tego od razu próbuje się z nimi parować mimo ustawienia, że ma się tylko z konkretnym urządzeniem łączyć. Na AT+INQC (anulowanie zapytania o urządzenia) odpowiada ciszą, chociaż na inne zawsze coś odpowiada (nawet na nieznane wali ERROR(0)). Z tego co czytam firmware w wersji 2 był bardziej przystępny dla białych ludzi, 3 działa <<dziwnie>>. Jak przy firmware 3 w trybie master wylistować listę urządzeń, a następnie połączyć się z nim? Możliwie najmniej automatycznych działań.