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? 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 10 cze 2025, o 14:10


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 26 ] 
    Autor Wiadomość
    PostNapisane: 22 sty 2020, o 09:34 
    Offline
    Nowy

    Dołączył(a): 02 sty 2016
    Posty: 10
    Pomógł: 0

    Witam, mam problem z biblioteką freemodbus 1.6.0, otóż nie moge sie połączyć z AVR (Slave) przez płytkę MAX485 z komputerem (Master)
    Sposób połaczenią zastosowałem jak w jednym z dostępnych wątków:
    Obrazek

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


    int main:
    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 kod poza pętlą główną:
    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.


    #define RTS_ENABLE i #define __AVR_ATmega168__ w pliku port.h uczyniłem.
    Wszystko się ładnie, ale są ostrzeżenia takie jak :
    Obrazek

    Dodam jeszcze, że komedna _delay_ms(1000); nie działa, sprawdzone przy miganiu lampki.

    Ma ktoś jakies pomysły czemu, mikrokontroler nie otrzymuje albo nie wysyla ramek danych?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 sty 2020, o 09:55 
    Offline
    Użytkownik

    Dołączył(a): 23 sty 2014
    Posty: 1085
    Pomógł: 73

    pejdz napisał(a):
    Dodam jeszcze, że komedna _delay_ms(1000); nie działa, sprawdzone przy miganiu lampki.


    Nie działa miganie diodą a Ty próbujesz uruchomić modbusa? Dobrze rozumiem?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 sty 2020, o 10:08 
    Offline
    Nowy

    Dołączył(a): 02 sty 2016
    Posty: 10
    Pomógł: 0

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

    Ona sie zapala ale nie gasi jeżeli do podanego wyżej kodu dpoiszemy ta drobną funkcjonalność, zaś jeżeli robie to na przycisku nie na opóźnieniu wszystko dobrze działa.
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Może biblioteka freemodbus nie toleruje funkcji _delay_ms();



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 sty 2020, o 11:28 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 31 mar 2015
    Posty: 310
    Pomógł: 18

    "Miganie diodą" tam wystawiasz 1 na piny PD1 i PD0. Aby wygasić PD1 zastosuj wyrażenie PORTD &=~(1<<PD1). W drugim przypadku podobnie.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 sty 2020, o 11:29 
    Offline
    Użytkownik

    Dołączył(a): 23 sty 2014
    Posty: 1085
    Pomógł: 73

    pejdz napisał(a):
    Może biblioteka freemodbus nie toleruje funkcji _delay_ms();


    żadna biblioteka nie toleruje jak sie procek blokuje przez _delay_ms().

    Poza tym funkcja do migania diodą powinna wyglądać tak:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 sty 2020, o 11:37 
    Offline
    Użytkownik

    Dołączył(a): 01 lis 2013
    Posty: 301
    Pomógł: 32

    pejdz napisał(a):
    mam problem z biblioteką freemodbus 1.6.0, otóż nie moge sie połączyć z AVR (Slave) przez płytkę MAX485 z komputerem (Master)
    Sposób połaczenią zastosowałem jak w jednym z dostępnych wątków:

    Kolego, jeżeli w rzeczywistości masz podpiętego MAX-a do procka dokładnie w taki sposób, jak na tym "schemacie", to biblioteka może być wyryta nawet w "złotym krzemie" i nie ruszy. A dlaczego ? Zaglądnij do noty aplikacyjnej użytego układu MAX485, pomyśl, przeanalizuj zawarte tam informacje....

    Ze swojej strony dodam, że to nie problem z biblioteką....

    _________________
    Pozdrawiam,
    sq8mvy, Paweł



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 sty 2020, o 11:50 
    Offline
    Nowy

    Dołączył(a): 02 sty 2016
    Posty: 10
    Pomógł: 0

    Cytuj:
    żadna biblioteka nie toleruje jak sie procek blokuje przez _delay_ms().

    Poza tym funkcja do migania diodą powinna wyglądać tak:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    while(1)
    {
    PORTD |= (1<<PD1);
    _delay_ms(1000);
    PORTD &= ~(1<<PD1);
    _delay_ms(1000);
    }


    W tym przypadku też jedynie się zapala ale się nie gasi po upływie 1 s. Ale to mniej istotne nie mogę zaobserwować żadnego ruchu danych na lini Komputer AVR programem mbpollem

    ------------------------ [ Dodano po: 2 minutach ]

    Cytuj:
    Kolego, jeżeli w rzeczywistości masz podpiętego MAX-a do procka dokładnie w taki sposób, jak na tym "schemacie", to biblioteka może być wyryta nawet w "złotym krzemie" i nie ruszy. A dlaczego ? Zaglądnij do noty aplikacyjnej użytego układu MAX485, pomyśl, przeanalizuj zawarte tam informacje....

    Ze swojej strony dodam, że to nie problem z biblioteką....


    to może byś powiedział, bo naprawdę nie jestem ekspertem w tej dziedzinie. A każda pomoc byłaby na wagę złota.

    EDIT

    Zmienilem polaczenie przewodów RX0 (Pin14) z TX0 (Pin15)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 sty 2020, o 12:07 
    Offline
    Użytkownik

    Dołączył(a): 01 lis 2013
    Posty: 301
    Pomógł: 32

    Podpowiedziałem bardzo dużo. Pytanie tylko, czy zadałeś sobie na tyle dużo trudu, aby chociaż zaglądnąć do noty MAX485?

    Nauka nie polega na kopiowaniu schematów.....
    Ale ok. Pierwszy rysunek z pinoutem MAX485 - strona 7 pdf-a
    Obrazek

    Oraz fragment Twojego "schematu":
    Obrazek
    Celowo tylko ten fragment przedstawiłem......

    _________________
    Pozdrawiam,
    sq8mvy, Paweł



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 sty 2020, o 12:08 
    Offline
    Nowy

    Dołączył(a): 27 lut 2015
    Posty: 19
    Pomógł: 2

    Linie A i B za MAX odpowiednio podciągnięte do + i GND. Odwrotnie podpięte RO i DI tzn RO>RXD i DI>TXD.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 sty 2020, o 12:10 
    Offline
    Moderator
    Avatar użytkownika

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

    pejdz napisał(a):
    W tym przypadku też jedynie się zapala ale się nie gasi po upływie 1 s. Ale to mniej istotne

    Nie piszę tego złośliwie, ale jeśli się ma problemy z miganiem diodą i się zostawia to "na boku" - to jakim cudem chcesz okiełznać po tysiąckroć coś bardziej skomplikowanego jak taką bibliotekę. Toż już same te czasy migania mówią same za siebie że masz coś mocno i to mocno pomieszane w podsawowym odpaleniu kodu.

    Weź ty sobie samą diodę LED i najpierw doprowadź do tego żeby ona poprawnie migała - a wtedy idź dalej

    _________________
    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: 22 sty 2020, o 12:13 
    Offline
    Nowy

    Dołączył(a): 02 sty 2016
    Posty: 10
    Pomógł: 0

    tak RO i DI zamieniłem już wczesniej ale to poskutkowało tym, iż na RX zapaliła mi się lampka i świeci ciągłym swiatłem nie widac wysyłanych ramek.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 sty 2020, o 12:17 
    Offline
    Użytkownik

    Dołączył(a): 25 lip 2013
    Posty: 2596
    Pomógł: 129

    Jak ogarniesz miganie LEDa to podlacz /zakup najprostszy logic analizer - przyda Ci się do wielu innych rzeczy, nie tylko do ogarniecia transmisji.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 sty 2020, o 12:22 
    Offline
    Nowy

    Dołączył(a): 02 sty 2016
    Posty: 10
    Pomógł: 0

    Cytuj:
    Jak ogarniesz miganie LEDa to podlacz /zakup najprostszy logic analizer - przyda Ci się do wielu innych rzeczy, nie tylko do ogarniecia transmisji.

    Mam Moxe Nport5232

    Cytuj:
    Nie piszę tego złośliwie, ale jeśli się ma problemy z miganiem diodą i się zostawia to "na boku" - to jakim cudem chcesz okiełznać po tysiąckroć coś bardziej skomplikowanego jak taką bibliotekę. Toż już same te czasy migania mówią same za siebie że masz coś mocno i to mocno pomieszane w podsawowym odpaleniu kodu.

    Weź ty sobie samą diodę LED i najpierw doprowadź do tego żeby ona poprawnie migała - a wtedy idź dalej


    Miganie mi działa, gdy nie mam zaimplementowanego kodu z dema biblioteki freemodbas, na arduino ściągnąłem bibliotkę wszystko poustawiałem i działa, a tutaj mam problem i nie mogę go zlokalizować. błedy w podłaczeniu odpowiednich pinów juz wyeliminowałem.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 sty 2020, o 12:27 
    Offline
    Użytkownik

    Dołączył(a): 25 lip 2013
    Posty: 2596
    Pomógł: 129

    Logic analizator nie konwerter/serwer rs485...



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 sty 2020, o 12:28 
    Offline
    Użytkownik

    Dołączył(a): 01 lis 2013
    Posty: 301
    Pomógł: 32

    Slawek5791 napisał(a):
    Linie A i B za MAX odpowiednio podciągnięte do + i GND.

    Bez obrazy, ale to jest jakiś żart.....

    Cytuj:
    ale to poskutkowało tym, iż na RX zapaliła mi się lampka i świeci ciągłym swiatłem nie widac wysyłanych ramek.

    O jakiej lampce mowa ? W jaki sposób chcesz obserwować wysyłane ramki przez lampkę?

    Po pierwsze. Jakie masz ustawione fusbity w mikrokontrolerze. Jaką częstotliwość taktowania mikrokontrolera masz ustawione w projekcie.
    To są podstawowe sprawy, jakimi się musisz w pierwszej kolejności zająć. Jeżeli te ustawienia będą błędne, to i uart nie będzie pracował z poprawną prędkością.
    Do testów wypnij tego MAX-a, pod uart podepnij przejściówkę usart<->USB i na komputerze w terminalu obserwuj, co się dzieje. Jak komunikacja w ten sposób ruszy, to użyj MAX-a i interfejsu RS485<->USB.

    _________________
    Pozdrawiam,
    sq8mvy, Paweł



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 sty 2020, o 12:31 
    Offline
    Użytkownik

    Dołączył(a): 23 sty 2014
    Posty: 1085
    Pomógł: 73

    gizmo5418 napisał(a):
    Slawek5791 napisał(a):
    Linie A i B za MAX odpowiednio podciągnięte do + i GND.

    Bez obrazy, ale to jest jakiś żart.....


    Czemu żart?

    ------------------------ [ Dodano po: 1 minucie ]

    gizmo5418 napisał(a):
    O jakiej lampce mowa ? W jaki sposób chcesz obserwować wysyłane ramki przez lampkę?


    Jakoś mi się tak z lampką biurkową skojarzyło :) mikrokontroler wysyła ramkę a lampka na biurku przygasa bit za bitem :lol: :lol: :lol:



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 sty 2020, o 12:53 
    Offline
    Nowy

    Dołączył(a): 02 sty 2016
    Posty: 10
    Pomógł: 0

    Cytuj:
    O jakiej lampce mowa ? W jaki sposób chcesz obserwować wysyłane ramki przez lampkę?


    Nie lampka miała mi mówić czy mikrokontroler dobrze funkcjonuje i może wykonywać inne funkcjię oprócz modbusa

    Cytuj:
    Po pierwsze. Jakie masz ustawione fusbity w mikrokontrolerze. Jaką częstotliwość taktowania mikrokontrolera masz ustawione w projekcie.
    To są podstawowe sprawy, jakimi się musisz w pierwszej kolejności zająć. Jeżeli te ustawienia będą błędne, to i uart nie będzie pracował z poprawną prędkością.
    Do testów wypnij tego MAX-a, pod uart podepnij przejściówkę usart<->USB i na komputerze w terminalu obserwuj, co się dzieje. Jak komunikacja w ten sposób ruszy, to użyj MAX-a i interfejsu RS485<->USB.


    Tak też uczynię.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 sty 2020, o 10:55 
    Offline
    Nowy

    Dołączył(a): 02 sty 2016
    Posty: 10
    Pomógł: 0

    A więć za radą kolegi skomunikowałem się na początku z komputerem po przez przejściówkę USB to TTL pisząć prosty program:

    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.


    Teraz spróbuje to wysłać poprzez bibliotekę freemodbus do komputer również po przez USB to TTL



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 sty 2020, o 11:27 
    Offline
    Użytkownik

    Dołączył(a): 01 lis 2013
    Posty: 301
    Pomógł: 32

    Czegoś nie rozumiem. Na schemacie jest, że masz podpięty kwarc 16MHz, Na listingu podajesz 8MHz....... Coś tu jest nie tak ...

    Na dodatek w kodzie wpisujesz definicję F_CPU, czego się nie powinno robić. Poprawną częstotliwość ustawia się w ustawieniach projektu, tak aby była wartością globalną, odnoszącą się do wszystkich plików w projekcie.

    Teraz zainkludujesz bibliotekę modbus, która zostanie skompilowana dla nie wiadomo jakiej częstotliwości taktowania ( ustawionej w projekcie ), plik main.c skompiluje się z tym F_CPU, który definiujesz, jak pokazałeś powyżej i wychodzi masło maślane, posty na forum, że nie działa itp, itd....

    Skoro takie podstawowe błędy robisz, to nie dziw się, że nie chce ci działać, bo to nie ma prawa poprawnie działać.
    Zacznij naukę od samego początku - miganie LED-em, a nie od obsługi magistrali RS485 za pomocą modbus-a.

    _________________
    Pozdrawiam,
    sq8mvy, Paweł



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 sty 2020, o 13:29 
    Offline
    Nowy

    Dołączył(a): 02 sty 2016
    Posty: 10
    Pomógł: 0

    Ale to zupełnie inny projekt testowy do komunikacji po RS232, a Ty mi wyskakujesz z czyms takim.

    ------------------------ [ Dodano po: 9 minutach ]

    Cytuj:
    Skoro takie podstawowe błędy robisz, to nie dziw się, że nie chce ci działać, bo to nie ma prawa poprawnie działać.
    Zacznij naukę od samego początku - miganie LED-em, a nie od obsługi magistrali RS485 za pomocą modbus-a.


    Co jest błędnego w deklaracji F_CPU przed innymi deklaracjami jak w projekcie jest jeden plik wykonwaczy main.c?
    Miganie diodą led nie jest problemem, bo fusrbity avr328p sa ustawione na 8 Mhz i w programie wysyłanie czy miganie diody też jest ustawione na 8 Mhz. Chodzi o to że po implementacji kodu z Freemodbus funkcja delay przestaje działać prawidłowo.
    Chyba nawet nie zajrzałeś w kod i nie zobaczyleś, że to najprosty USART a odrazu obrzucasz kogoś błotem.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 sty 2020, o 14:01 
    Offline
    Użytkownik

    Dołączył(a): 01 lis 2013
    Posty: 301
    Pomógł: 32

    pejdz napisał(a):
    Ale to zupełnie inny projekt testowy do komunikacji po RS232,

    To wypada o tym wspomnieć. Podając kod testowy z uartem, dla mnie jest jasne, że uruchamiasz go na tym układzie ze schematu z pierwszego postu - bo na tym schemacie opiera się cały ten wątek.

    pejdz napisał(a):
    Co jest błędnego w deklaracji F_CPU przed innymi deklaracjami jak w projekcie jest jeden plik wykonwaczy main.c?

    Aż taki jesteś pewien, że w projekcie z kodem testowym uarta jest tylko ten Twój plik main.c ???

    pejdz napisał(a):
    Chyba nawet nie zajrzałeś w kod i nie zobaczyleś, że to najprosty USART

    Zajrzałem. Pytanie tylko takie, czy wiesz, jak wygląda proces kompilacji, co robi linker, co dokłada do kodu wynikowego itp, itd

    Bo, jeżeli nie wiesz:
    pejdz napisał(a):
    Co jest błędnego w deklaracji F_CPU przed innymi deklaracjami


    To również nie znajdziesz odpowiedzi na:
    pejdz napisał(a):
    Chodzi o to że po implementacji kodu z Freemodbus funkcja delay przestaje działać prawidłowo.


    Zmień podejście do osób, które chcą Ci pomagać. Mi obecnie szkoda czasu.

    _________________
    Pozdrawiam,
    sq8mvy, Paweł



    Ostatnio edytowano 24 sty 2020, o 14:24 przez gizmo5418, łącznie edytowano 1 raz

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 sty 2020, o 14:23 
    Offline
    Nowy

    Dołączył(a): 02 sty 2016
    Posty: 10
    Pomógł: 0

    Rozumiem, to był program pisany na szybko.
    Zazwyczaj ustawiam o w atmel studio tutaj:
    Obrazek

    Podpiąłem TX do RX i RX z TX w usb to TTL jednak nie widzę, aby wysyłał jakieś pakiety modbus. I zastanawia mnie to miganie diody poprzez opóźnienia. Przy standardowym wykorzystaniem USARTa nie ma problemu miganie, a w modbusie juz ma i nie działa.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 sty 2020, o 16:08 
    Offline
    Użytkownik

    Dołączył(a): 01 lis 2013
    Posty: 301
    Pomógł: 32

    Abym dobrze zrozumiał.
    Ta dioda podpięta jest pod jaki pin? PD1, jak to jest w kodzie pokazanym gdzieś w początkowych postach ?

    Jeśli tak, to teraz pomyśl. W pierwszej kolejności inicjalizujesz bibliotekę modbus. Ona konfiguruje uart.
    Jeżeli uart jest skonfigurowany, to piny PD0 i PD1 są zajęte przez sprzętowy uart.
    Następnie, w dalszej części kodu, chcesz pinem PD1 sterować podpiętym LED-em programowo, ustawiając na przemian stan 0 i 1 z użyciem makra delay_ms().

    Skoro pin PD1, jest kontrolowany przez uart, jako TX, na dodatek, zapewne obsługa uart w bibliotece używa przerwań, to jak chcesz tym LED-em migać programowo na PD1, przy okazji robiąc sieczkę na linii TX ?

    Dokładnie takie wnioski wyciągnąłem z dotychczasowych postów. Jeżeli są błędne, to dokładnie wyjaśnij ta kwestię, aby była jednoznaczna.

    _________________
    Pozdrawiam,
    sq8mvy, Paweł



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 27 sty 2020, o 09:16 
    Offline
    Nowy

    Dołączył(a): 02 sty 2016
    Posty: 10
    Pomógł: 0

    Cytuj:
    Abym dobrze zrozumiał.
    Ta dioda podpięta jest pod jaki pin? PD1, jak to jest w kodzie pokazanym gdzieś w początkowych postach ?

    Jeśli tak, to teraz pomyśl. W pierwszej kolejności inicjalizujesz bibliotekę modbus. Ona konfiguruje uart.
    Jeżeli uart jest skonfigurowany, to piny PD0 i PD1 są zajęte przez sprzętowy uart.
    Następnie, w dalszej części kodu, chcesz pinem PD1 sterować podpiętym LED-em programowo, ustawiając na przemian stan 0 i 1 z użyciem makra delay_ms().

    Skoro pin PD1, jest kontrolowany przez uart, jako TX, na dodatek, zapewne obsługa uart w bibliotece używa przerwań, to jak chcesz tym LED-em migać programowo na PD1, przy okazji robiąc sieczkę na linii TX ?

    Dokładnie takie wnioski wyciągnąłem z dotychczasowych postów. Jeżeli są błędne, to dokładnie wyjaśnij ta kwestię, aby była jednoznaczna.


    Przepraszam tam był błąd oczywiście nie pod PD0 ani PD1 tylko PD4 dioda jest podpięta
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Poniżej zamieszczam cały projekt do wglądu


    Załączniki:

    Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 27 sty 2020, o 18:45 
    Offline
    Użytkownik

    Dołączył(a): 01 lis 2013
    Posty: 301
    Pomógł: 32

    W wolnej chwili popatrzę na to, ale już na perwszy rzut oka:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Wytłumacz proszę, co ma robić ten zapis? Generalnie on w tym miejscu, w którym jest nic nie wnosi, ale zdajesz sobie sprawę,
    że jest to koszmarek?

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

    Tak nigdy nie powinno się robić, tym bardziej, że sprawdzanie stanu za pomocą eMBPoll() powinno być wykonywane bez żadnych opóźnień, czyli jak najczęściej, aby zapewnić natychmiastową reakcję na przychodzące dane.
    Przy takiej konstrukcji, pętla wykonuje się raz na dwie sekundy, co jest niedopuszczalne.
    Takie mruganie się inaczej rozwiązuje - np za pomocą programowego timera. Mruganie nie może blokować pętli.

    _________________
    Pozdrawiam,
    sq8mvy, Paweł



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 27 sty 2020, o 21:02 
    Offline
    Użytkownik

    Dołączył(a): 01 lis 2013
    Posty: 301
    Pomógł: 32

    Nie wiem, czy szukałeś na forum, ale w tym poście -> topic1523-90.html?hilit=freemodbus#p201990
    masz działający przykład - wg. autora. Na nim się bazuj na początku.

    _________________
    Pozdrawiam,
    sq8mvy, Paweł



    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: 26 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 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