Zanim...
Zanim...



Polskie Forum FPV

Forum modelarzy i pilotów FPV
Dzisiaj jest czwartek 19 wrz 2019, 14:16

Strefa czasowa UTC+1godz.




Nowy temat Odpowiedz w temacie  [ Posty: 10 ] 
Autor Wiadomość
Post: czwartek 07 lut 2019, 16:05 
Offline

Rejestracja: poniedziałek 12 lip 2010, 11:51
Posty: 1850
Lokalizacja: Kraków
HEJ

Podlaczylem do Arduino BT zeby przesylac sobie dane radiem a nie gonic po karte SD.
Transmisja dziala. Brakuje mi tylko jednego - jak z poziomu Arduino rozpoznac ze:
a) cos sie sparowalo z BT,
b) terminal na tym czyms jest gotowy do odbioru danych.
...
PS. OK wiem. Pin STATE przyjmuje wartosc HIGH jesli adapter jest sparowany ORAZ jest aktywny terminal odbierajacy...
Fajnie :)

Nie do konca, zawiesilem sie na tym, ze warunek IF sprawdzajacy czy STATE=HIGH nie dziala poprawnie.

Podlaczylem STATE do wejscia analogowego 2, gdy STATE = high, wartosc odczytu wynosi u mnie 667.

Kod:
    if (analogRead(2) > 500); {
      if (SD.begin(10)) { // jesli jest karta
        File dataFile = SD.open("pomiary.csv");
        if (dataFile) {
          LCD_Line1("Przesylam dane  ");
          LCD_Line2("przez BT        ");
          while (dataFile.available()) {
            Serial3.write(dataFile.read());}
          dataFile.close();
          delay(100);
        }

      }

    }


Problem w tym, ze analogRead(2) = 0 a mimo to, zawarosc IF jest realizowana - program probuje wyslac dane na BT...

Zglupialem - dlaczego program wchodzi w IF pomimo niespelnienia warunku?

q


Na górę
 Wyświetl profil  
 
Post: czwartek 07 lut 2019, 18:14 
Offline
Awatar użytkownika

Rejestracja: środa 19 mar 2014, 02:03
Posty: 7507
Lokalizacja: Polska
Srednik


Na górę
 Wyświetl profil  
 
Post: czwartek 07 lut 2019, 18:25 
Offline

Rejestracja: poniedziałek 12 lip 2010, 11:51
Posty: 1850
Lokalizacja: Kraków
Obrazek

Dzieki!

Jak ja nie cierpie skladni C++. Po grzyba te sredniki i klamry? :(

q


Na górę
 Wyświetl profil  
 
Post: środa 13 lut 2019, 20:38 
Offline

Rejestracja: poniedziałek 05 maja 2014, 21:11
Posty: 411
Lokalizacja: Biała Podlasla
Lepszy BASIC? Z numerowanymi liniami? ;-) ja kiedyś tak myślałem...


Na górę
 Wyświetl profil  
 
Post: środa 13 lut 2019, 22:02 
Offline

Rejestracja: poniedziałek 12 lip 2010, 11:51
Posty: 1850
Lokalizacja: Kraków
Nie - Brainfuck jest lepszy.

A powazniej - potrafisz podac jakis racjonalny powod dla uzywania {}? Ja nie.

Gdyby zamiast :

Kod:
if {
   cos tam
   }
   else
   {
   cos tam
   }


bylo:

Kod:
if
   cos tam
else
   cos tam
endif


To co zlego by sie stalo? Program bylby czytelniejszy.

Ile ja czasu zmarnowalem szukajac bledu gdy jaka pier....a klamerka byla w zlym miejscu...

q


Na górę
 Wyświetl profil  
 
Post: sobota 16 lut 2019, 23:25 
Offline

Rejestracja: poniedziałek 05 maja 2014, 21:11
Posty: 411
Lokalizacja: Biała Podlasla
Tak. Brainfuck rządzi. Aż mi się przypomniało pisanie os dla risc na laborkach... ;-)

Klamerki to takie podprocedury.
Wystarczy zastosować wcięcia podczas pisania programu i wszystko staje się czytelne.

Jeśli masz tylko jedną instrukcję do wykonania warunkowego, to są niepotrzebne - można tak się umówić.

Ale ktoś o tym dużo myślał i są, bo są potrzebne. Da się wszystko zrobić pewnie też w innym języku. Ale przyzwyczaisz się, zobaczysz.


BTW do Twojego przykładu wcięcia aż się proszą, kod byłby czytelniejszy i uniknalbys błędu.


Na górę
 Wyświetl profil  
 
Post: niedziela 17 lut 2019, 08:01 
Offline

Rejestracja: poniedziałek 12 lip 2010, 11:51
Posty: 1850
Lokalizacja: Kraków
Ja mam przeciwne wrażenie - im więcej zagnieżdżonych warunków tym ciemniej mi się przed oczami robi od samych klamerek :)

Żeby potem jeszcze kompilator dawał jednoznaczny komunikat o błędzie, ale nie - to by było zbyt proste :)
Pluje się, że błąd, szukam pół godziny - okazuje się, ze któraś z dziesięciu klamerek jest w złym miejscu :)
Co gorsza złe postawienie klamerki może nie generować błędu tylko ominiecie warunku etc...

W desperacji zacząłem nawet myśleć o napisaniu translatora z języka ludzkiego na klamerekowy - żeby można
było pisać kod po ludzku, a przed kompilowaniem translator tłumaczył na mudźiński ;)

q


Na górę
 Wyświetl profil  
 
Post: niedziela 17 lut 2019, 09:42 
Offline
Awatar użytkownika

Rejestracja: wtorek 17 lis 2015, 22:03
Posty: 2002
Lokalizacja: Gdynia
Jakub Jewuła, jak będziesz pisał w jakimś innym edytorze - na inne procki (chociaz pewnie na ardu tez sie da), to klamerki pozwolą na "zwiniecie" kodu ktory ciebie aktualnie nie interesuje, albo zaznaczenie gdzie jest "zasieg" danej klamerki.

Ja ostatnio pisałem w Pythonie Bardzo prostą apke i juz się zacząłem wkurzac na wcięcia - póki piszesz kod bez zmian to jest ok, ale jak część kodu chcesz objąć po jego napisaniu osobnym warunkiem, albo dwoma zagniezdzonymi - to cholera bierze z tymi wcięciami - więcej czasu zajmuje taka kosmetyka aniżeli dodanie 2-4 klamr.
- Oczywiście przy klamrach też wcinam kod, ale najczęściej taką kosmetykę stosuję na koniec, i bez znaczenia jest czy dam jednego "taba" dwie czy trzy spacje czy ktokolwiek... byle było czytelne

_________________
Andrzej "Kuczy"

Moje quadro TAROT class 780 - w trakcie budowy: http://rc-fpv.pl/viewtopic.php?f=27&t=36286
Moja piękna S-500 [Zakończona]: http://rc-fpv.pl/viewtopic.php?f=27&t=31760


Na górę
 Wyświetl profil  
 
Post: niedziela 17 lut 2019, 13:40 
Offline
Awatar użytkownika

Rejestracja: środa 19 mar 2014, 02:03
Posty: 7507
Lokalizacja: Polska
Jakub Jewuła pisze:
W desperacji zacząłem nawet myśleć o napisaniu translatora z języka ludzkiego na klamerekowy - żeby można
było pisać kod po ludzku, a przed kompilowaniem translator tłumaczył na mudźiński ;)

Przychodzi na mysl powiedzenie o pewnej baletnicy... ;-)


Na górę
 Wyświetl profil  
 
Post: niedziela 17 lut 2019, 18:11 
Offline
Awatar użytkownika

Rejestracja: czwartek 20 wrz 2012, 22:38
Posty: 246
Lokalizacja: Wrocław
Jak ktoś próbuje wbijać gwoździe kuflem od piwa, to wiadomo, że nie obędzie się bez problemów ;)

Trzeba po prostu odpowiedniego narzędzia do danej pracy. W tym wypadku trzeba po prostu zacząć używać jakiegoś edytora dla programistów, który bedzie sam uzupełniał nawiasy, wciecia, podświetlał i podpowiadał składnię.
U mnie w pracy większość używa Atom-a (jest na każdy system).
Ja osobiście używam Notepadqq, bo jest mniejszy i nie przeszkadza mi brak pewnych 'ficzerów'. Ale składnię podświetla, a sekcje jest w stanie pozwijać.


Na górę
 Wyświetl profil  
 
Wyświetl posty nie starsze niż:  Sortuj wg  
Nowy temat Odpowiedz w temacie  [ Posty: 10 ] 

Strefa czasowa UTC+1godz.


Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 12 gości


Nie możesz tworzyć nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Przejdź do:  
Technologię dostarcza phpBB® Forum Software © phpBB Group

Strona korzysta z plików cookie w celu realizacji usług zgodnie z . Polityką prywatności
Możesz określić warunki przechowywania lub dostępu do cookie w Twojej przeglądarce lub konfiguracji usługi.