RybaSG Napisano Wrzesień 4, 2018 Udostępnij Napisano Wrzesień 4, 2018 Cześć, Zrobiłem urządzenie z nadajnikiem opartym na chipie nRF24L01+. Problem jest taki, że każda drobna zmiana wykonywana (chodzi o czas wykonywania, który się wtedy zmieni) w pętli głównej programu wpływa na nadawanie. Dla przykładu: w zamieszczonym przeze mnie kodzie poprawnie nadawane są dane o akutalnym napięciu (XPotVoltage, YPotVoltage) natomiast komenda TX, którą wysyłam nie zostaje nadawana wcale. Jednak dodając wewnątrz funkcji nRF24L01+ opóźnienie rzędu 10us wszystko zaczyna działać poprawnie do momentu dodania obsługi wyświetlacza OLED, wtedy dane o napięciu są wysyłane poprawnie, ale komenda TX wysyłana jest losowo przy poruszaniu joystickiem, z którego czytam napięcie. Poprawność działania testuję na terminalu, do którego trafiają dane z odbiornika. Używałem też analizatora stanów logicznych, funkcja nadająca "TX" w ogóle jakby się nie wykonywała. Korzystam z tej biblioteki: https://forum.atnel.pl/topic11377.html @EDIT: co ciekawe inicjalizacja OLED powoduje całkowite niedziałanie nadawania. while(1) { if ( nRF_Flag == 0) { XPotentiometerVoltage = measurement(PA1); memset(Buffer, '\0', strlen(Buffer)); sprintf(Buffer, "Xaxis%d", XPotentiometerVoltage); nRF_SendDataToAir(Buffer); YPotentiometerVoltage = measurement(PA0); memset(Buffer, '\0', strlen(Buffer)); sprintf(Buffer, "Yaxis%d", YPotentiometerVoltage); nRF_SendDataToAir(Buffer); memset(Buffer, '\0', strlen(Buffer)); sprintf(Buffer, "TX"); nRF_SendDataToAir(Buffer); } OLED_SendString(0, 35, "Voltage: " ,1, 1, 0); OLED_SendInt(0, 35, IntegerPart, 1, 1, 0); OLED_SendString(0, strlen("Voltage: ")+1, "." ,1, 1, 0); OLED_SendInt(0, strlen("Voltage: ")+2, FractionPart, 1, 1, 0); OLED_SendString(0, 35, " " ,1, 1, 0); OLED_Display(); } Z góry dziękuję za podpowiedzi, Pozdrawiam Cytuj Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Dołącz do dyskusji, napisz odpowiedź!
Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!