Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 5 maja 2025, o 10:33


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 19 ] 
    Autor Wiadomość
     Tytuł: wi-fi początki
    PostNapisane: 31 lip 2018, o 17:26 
    Offline
    Użytkownik

    Dołączył(a): 28 maja 2016
    Posty: 469
    Lokalizacja: Katowice
    Pomógł: 1

    Cześć.
    Oglądam poradnik Pana Mirka :
    #0173 WIFI232 - programowanie - Part 01
    i mam kłopot.
    Zaimportowałem sobie do mojego nowego programu bibliotekę z green booka - MK_USART, wszystko pięknie się zaimportowało. postępuję zgodnie z poradnikiem, czyli mam wszystkie includy

    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    i po kompilacji wyskakuje mi worning w kodzie w pliku mkuart.c, konkretnie w else funkcji:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    w tej linijce:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Niestety nie mogę sobie z tym worningiem poradzić.

    treść błędu : No break at the end of case

    _________________
    Nikt nie mówił,że będzie łatwo...



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 31 lip 2018, o 18:01 
    Offline
    Użytkownik

    Dołączył(a): 08 mar 2015
    Posty: 60
    Pomógł: 5

    Po prostu wynika to ze składni switch...case, że po każdym case powinien być break, lecz w tym przypadku zmieni to logikę i po prostu musisz zaakceptować ten warning

    _________________
    Http://anonimg3.comxa.com



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 31 lip 2018, o 18:04 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 23 paź 2014
    Posty: 1033
    Lokalizacja: Trójmiasto
    Pomógł: 190

    wstaw break i po problemie. Widzisz przy zwykłych warunkach można pominąć break i pozwolić na wykonanie kolejnych. Ale kod default jest jakby odrębnym tematem dla tego ostatni warunek przed defaultowym musi być zakończony break-iem.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 31 lip 2018, o 18:09 
    Offline
    Użytkownik

    Dołączył(a): 08 mar 2015
    Posty: 60
    Pomógł: 5

    xentis napisał(a):
    wstaw break i po problemie. Widzisz przy zwykłych warunkach można pominąć break i pozwolić na wykonanie kolejnych. Ale kod default jest jakby odrębnym tematem dla tego ostatni warunek przed defaultowym musi być zakończony break-iem.

    Z tego co pamiętam, to Mirek pisał w GB, że tam break'a nie może być ale może się mylę

    _________________
    Http://anonimg3.comxa.com



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 31 lip 2018, o 18:15 
    Offline
    Użytkownik

    Dołączył(a): 07 cze 2016
    Posty: 563
    Pomógł: 143

    Spróbuj dodać taki komentarz:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    i warning powinien zniknąć.

    EDIT:
    xentis napisał(a):
    wstaw break i po problemie

    Tylko że to zmieni działanie programu w taki sposób, że znak CR (13) nie będzie dodawany do bufora odbiorczego, a chyba raczej powinien być, bo jak zidentyfikować koniec linii, jeśli jej długość nie jest znana?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 31 lip 2018, o 20:20 
    Offline
    Użytkownik

    Dołączył(a): 02 gru 2015
    Posty: 550
    Pomógł: 28

    W którymś z poradników o bodajże uart Mirek pokazał jak tego swicha zamienić na if i warming zniknie.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 31 lip 2018, o 22:24 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27379
    Lokalizacja: Szczecin
    Pomógł: 1043

    wojciechgorzolka napisał(a):
    Niestety nie mogę sobie z tym worningiem poradzić.

    treść błędu : No break at the end of case


    Proponuję zwrócić uwagę, że to nie jest WARNING kompilatora. Czy pojawia ci się WARNING w oknie CONSOLE po kompilacji ? ;) NA PEWNO NIE ;) ... za to Eclipse pokazuje tam pchełkę i żółty szlaczek ... Zatem z punktu widzenia kompilacji i programu nie jest to ŻADEN podkreślam - ŻADEN problem i można się tym nie przejmować.

    Są oczywiście dwa sposoby rozwiązania i już niejednokrotnie je podawałem tzn przynajmniej jeden - gdy pokazywałem gdzie trzeba zmienić pewne ustawienie w Eclipse żeby się nie czepiał tej bzdury bo z punktu widzenia języka C to nie jest żaden problem ;)


    równie dobrze całą sekcję switch możesz zamienić na taki zapis ;)


    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    i problem zniknie

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 31 lip 2018, o 23:26 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 11 mar 2014
    Posty: 1475
    Pomógł: 167

    mirekk36 napisał(a):
    pokazywałem gdzie trzeba zmienić pewne ustawienie w Eclipse żeby się nie czepiał tej bzdury bo z punktu widzenia języka C to nie jest żaden problem ;)
    A ja bym nie polecał zmieniania w Eclipse, bo jak się ma problemy na takim poziomie, to na pewno taki warning częściej pomoże, gdy się jednak zapomni wstawić break niż będzie zbędny ;). Lepsza jest taka nadgorliwość niż potem męczenie się w szukaniu błędu, którego nie tak łatwo w takich wypadkach znaleźć. A jak komuś przeszkadzają pchełki w Eclipse, to lepiej jest zmieniać zapis kodu na proponowany przez Ciebie.

    --
    Pozdrawiam,
    Robert



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 sie 2018, o 07:24 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27379
    Lokalizacja: Szczecin
    Pomógł: 1043

    tu bym polemizował - dlatego, że akurat te niektóre ostrzeżenia - jak to w tym przypadku ze strony Eclipsa - w niczym by nam nie przeszkodziły. Po prostu pilnowanie składni w Eclipse bywa zbyt rygorystyczne niż w C ;) jest bardziej pod C++

    Taki zapis jak w pytaniu autora wątku jest najzupełniej normalny dla standardu C ;) nie musi być tych break'ów ... i w Eclipse jest specyficzny jeden ptaszek który wyłącza tylko to zachowanie Eclipsa a nie że wyłącza się jednym ptaszkiem wszystkie ostrzeżenia Eclipsa.

    Fakt - jedyny problem to to, że jak zmienimy w Eclipse (tak na prawdę ustawienie dokonuje się w bieżącym workspace) to później po przeniesieniu do nowego workspace - pchła eclipsowa pojawia się od nowa ;) ...

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 sie 2018, o 07:42 
    Offline
    Użytkownik

    Dołączył(a): 07 cze 2016
    Posty: 563
    Pomógł: 143

    mirekk36 napisał(a):
    Taki zapis jak w pytaniu autora wątku jest najzupełniej normalny dla standardu C nie musi być tych break'ów ... i w Eclipse jest specyficzny jeden ptaszek który wyłącza tylko to zachowanie Eclipsa a nie że wyłącza się jednym ptaszkiem wszystkie ostrzeżenia Eclipsa.

    Fakt - jedyny problem to to, że jak zmienimy w Eclipse (tak na prawdę ustawienie dokonuje się w bieżącym workspace) to później po przeniesieniu do nowego workspace - pchła eclipsowa pojawia się od nowa ...


    Ale przecież ja już wcześniej w tym wątku podałem rozwiązanie. Nie trzeba wyłączać tej opcji. Wystarczy w miejscu, gdzie sprawdzanie składni oczekuje instrukcji break; wstawić komentarz
    //no break
    informując w ten sposob: "wiem, że zwykle powinien być tu break, ale świadomie go nie użyłem" i warning powinien zniknąć, nawet po przeniesieniu do innego workspace. Domyślnie taka funkcjonalność jest włączona, więc jeśli ktoś nie zmienia ustawień domyślnych, powinno to działać.

    EDIT: nie mam w tej chwili dostępu do Eclipse, ale o ile dobrze pamiętam tę funkcjonalność można ustawić w:
    Window -> Preferences -> C/C++ -> Code Analysis -> No break at the end of case



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 sie 2018, o 08:17 
    Offline
    Użytkownik

    Dołączył(a): 28 maja 2016
    Posty: 469
    Lokalizacja: Katowice
    Pomógł: 1

    bardzo Wam dziękuje za pomoc. Wasze sugestie i porady są bezcenne dla mnie. :) Nie ma to jak forum Atnel :)

    _________________
    Nikt nie mówił,że będzie łatwo...



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 sie 2018, o 10:19 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27379
    Lokalizacja: Szczecin
    Pomógł: 1043

    andrews napisał(a):
    Ale przecież ja już wcześniej w tym wątku podałem rozwiązanie. Nie trzeba wyłączać tej opcji. Wystarczy w miejscu, gdzie sprawdzanie składni oczekuje instrukcji break; wstawić komentarz
    //no break

    Nie wiedziałem, że można to załatwić komentarzem, więc na szybko sprawdzam i niestety - dodanie samego komentarza nie pomaga. Oczywiście to o czym piszesz

    Window -> Preferences -> C/C++ -> Code Analysis -> No break at the end of case

    i ja też często o tej opcji wspominałem pomaga ;)

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 sie 2018, o 12:03 
    Offline
    Użytkownik

    Dołączył(a): 07 cze 2016
    Posty: 563
    Pomógł: 143

    mirekk36 napisał(a):
    Nie wiedziałem, że można to załatwić komentarzem, więc na szybko sprawdzam i niestety - dodanie samego komentarza nie pomaga.

    To dziwne, bo u mnie pomaga i jestem prawie pewny, że nie musiałem tego ręcznie włączać w ustawieniach, więc założyłem, że są to ustawienia domyślne. Wystarczy, że dopiszę komentarz '// no break' na końcu case (tak, jak pokazałem w poście powyżej) i "pchełka" ginie sama. No ale może to kwestia wersji Eclipse?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 sie 2018, o 12:07 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27379
    Lokalizacja: Szczecin
    Pomógł: 1043

    andrews napisał(a):
    Wystarczy, że dopiszę komentarz '// no break' na końcu case (tak, jak pokazałem w poście powyżej) i "pchełka" ginie sama. No ale może to kwestia wersji Eclipse?

    Na razie sprawdziałem to tylko na Eclipse Mars ale sprawdzę jeszcze na innych - bo jak mówisz - byłaby to super opcja ;)

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 sie 2018, o 12:15 
    Offline
    Użytkownik

    Dołączył(a): 07 cze 2016
    Posty: 563
    Pomógł: 143

    Ale u mnie właśnie na MARS to działa.
    Proponuję sprawdzić to:
    https://stackoverflow.com/questions/169 ... ning-in-cd
    Zdaje się, że tam są pewne obwarowania, np. komentarz musi być bezpośrednio przed następnym case, być może jeszcze inne, nie sprawdzałem, bo u mnie działało bez problemu.
    Zdaje się, że można nawet samodzielnie zdefiniować komentarz, który to ostrzeżenie wyłączy.

    EDIT:
    mirekk36 napisał(a):
    Window -> Preferences -> C/C++ -> Code Analysis -> No break at the end of case

    i ja też często o tej opcji wspominałem pomaga

    Tylko tu nie chodzi o odznaczenie "ptaszka":
    This problem is enabled
    żeby wyłączyć ostrzeżenie całkowicie (on ma zostać włączony), tylko tam można zdefiniować właśnie, jaki komentarz to ostrzeżenie lokalnie wyłączy.


    Autor postu otrzymał pochwałę


    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 2 sie 2018, o 06:32 
    Offline
    Użytkownik

    Dołączył(a): 18 lis 2014
    Posty: 33
    Pomógł: 2

    Witam, pokusiłem się o test, w eclipse Mars.2 na domyślnych ustawieniach działa to tak, jak opisuje kolega andrews.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 5 sie 2018, o 09:53 
    Offline
    Użytkownik

    Dołączył(a): 28 maja 2016
    Posty: 469
    Lokalizacja: Katowice
    Pomógł: 1

    Mam jeszcze pytanie. Mam nadzieję,że nie pomieszam pojęć. Ale chcę zbudować dwa układy z uC. W pierwszym będzie atmega 8 z zewnętrznym kwarcem 11.0592, oraz z atnel wifi , oraz klawiszem ( na płytce stykowej). Drugim układem póki co będzie zestaw ATB również z alnel wifi, z uC atmegą 32 zewnętrznym kwarcem 11.0592, oraz z podłączoną jedną diodą led. I chcę z układu z klawiszem, po przez tylko połączeni RS232( wifi) włączać i wyłączać diodę klawiszem. Czy te dwa moduły wifi powinny być ustawione w trybie APSTA, czy może w AP, czy może powinienem jakoś inaczej je skonfigurować. Dodam,że od czterech dni oglądam poradniki o wifi atnel, ale jest tam sporo informacji jak na te kilkanaście godzin oglądania i nie wszystko potrafiłem zapamiętać z poradników. :)

    _________________
    Nikt nie mówił,że będzie łatwo...



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 5 sie 2018, o 10:09 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27379
    Lokalizacja: Szczecin
    Pomógł: 1043

    Najpierw trzeba albo hmmm warto nabrać chociaż troszkę doświadczenia tak w ogóle ... z przynajmniej podstawowymi konfiguracjami routerów - szczególnie bezprzewodowych. Wtedy wiedziałbyś co to znaczy AP a co to znaczy STA. Tak bardzo ogólnie

    AP - Acces Point (punkt dostępowy - do którego mogą się podłączać stacje robocze STA)

    STA - STAtion - czyli stacja sieciowa - która jest klientem, który może się podłączać do AP

    oczywiście moduły mają nawet taką fajną opcję jak

    APSTA - Acces Point + STAtion - czyli mogą pracować zarówno jako stacja i punkt dostępowy, dzięki czemu np wbudowany STA może się łączyć do jakiegoś AP bezpośrednio albo przez jakiś router WIFi , natomiast do tego AP może się podłączyć JEDEN klient. Niestety ograniczeniem trybu APSTA jest to, że tylko jeden klient może się wtedy podłączyć do AP

    można by jeszcze długo o tym pisać - no ale to są takie podstawy podstaw

    ------------------------

    jeśli chcesz więc mieć bezpośrednie połączenie między dwoma modułami no to już chyba na podstawie tego opisu wiesz jak je ustawić?

    JEDEN w tryb tylko AP

    DRUGI mógłby być ustawiony TYLKO w tryb STA - ale bezpieczniej dać go w tryb APSTA. I ten moduł ustawiasz w tryb CLIENT i podłączasz go do procka z którego chcesz wysyłać rozkazy. Taki rozkaz doleci do pierwszego AP i no i tam procek zapali diodę


    Autor postu otrzymał pochwałę

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 5 sie 2018, o 10:15 
    Offline
    Użytkownik

    Dołączył(a): 28 maja 2016
    Posty: 469
    Lokalizacja: Katowice
    Pomógł: 1

    Dziękuję za bardzo konkretną informację (podpowiedź). Właśnie tego potwierdzenia mi brakowało od osoby doświadczonej w temacie. :):) Teraz będę wałczył dalej .

    To jeszcze dopytam o jedną rzecz.

    Z tego co mi Pan napisał to:
    W puszce w ścianie montuję układ uC jako AP i on będzie otrzymywał polecenie np z mojego zrobionego pilota z jednym klawiszem. Układ w puszcze otrzymuje informację i włącza lub wyłącza przekaźnik. Pilot natomiast będzie w trybie APSTA. I to jest logiczne i zrozumiałe.
    Ale co w sytuacji, gdy będę miał pilot (układ z atmegą i modułem wifi) z kilkoma klawiszami, którymi będę chciał włączać i wyłączać świetlenie w kilku pomieszczeniach. Wtedy pilot ustawiam jako APSTA, a w puszkach w pokojach wszystkie moduły z uC w tryb AP? Wydaje mi się,że powinno być w takim wypadku odwrotnie, czyli pilot jako AP, a puszki w ścianach jako STA ( bo to puszki w ścianie powinny się połączyć z centralnym modułem wysyłającym). czy dobrze to rozumuję?
    Wiem,że mogę zamiast pilota użyć komórkę, ale ja chcę właśnie mieć pilot własnoręcznie zbudowany:)

    Mam jeszcze odrębne pytanie.
    W prostym programie (w ogóle nie związanym z tematem uarta) który włącza i wyłącza diodę mogę sobie włączanie diody uzależnić od wartości zmiennej, np jeśłi zmienna ma wartość 1, to zapala diodę, jeśli zmienna ma wartość 0 to ją gasi.
    A czy w tym kodzie z poradnika #0173 WIFI232 - programowanie - Part 01
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    zamiast wysyłać po uarcie jakiś string , to czy mogę go gdzieś z ręki wpisać? tylko po to , aby sprawdzić,czy dioda mi się włączy i wyłączy, ponieważ chcę w tym kodzie uzależnić sobie włączanie diody od nadesłanego stringa. Czy w ciele funkji od odbioru stringa po uarcie mogę ręcznie gdzieś tego stringa wpisać? Pytam o takie działanie, ponieważ nie jestem jeszcze obyty ze zdarzeniami i colbakami. A chciałem się też dowiewdzieć w którym miejscu funkcji odbierającej ten string właśnie zostanie umieszczony.

    _________________
    Nikt nie mówił,że będzie łatwo...



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 19 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    cron
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO