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 26 lip 2025, o 08:19


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 
    Autor Wiadomość
    PostNapisane: 21 kwi 2019, o 15:30 
    Offline
    Nowy

    Dołączył(a): 15 lip 2016
    Posty: 6
    Pomógł: 0

    Witam,

    Od dłuższego czasu nie mogę sobie poradzić z pewnym problemem, mianowicie:

    Mam zbudowaną transmisję w oparciu o Rs485, zarządzaniem sieci zajmuję się PC który to dokładnie co 1s odpytuje procesor po czym oczekuje na jego odpowiedz, i wszytko byłoby ok gdyby nie to że podczas wysyłania zapytania procesor potrafi się zresetować, występuję to niezależnie, raz na jakiś czas, lub od razu po pierwszym wysłaniu zapytania przez PC. Zauważyłem że jeżeli PC zacznie wysyłać częściej zapytania to procesor zaczyna się szybciej resetować, lub i tutaj dziwna sprawa procesor wpada w dziwny stan i przez port w ciągu wysyła wszystkie (dosłownie wszystkie) informacje zawarte na wyświetlaczu LCD.

    -Procesor to Atmega 644
    -Używane biblioteki
    *LCD---> Pana Mirka
    *MK_USART---> Pana Mirka
    -Winę aplikacji na PC wykluczamy sprawdzane przez PuTTY objaw ten sam
    -Testowane różne prędkości oraz różne rozmiary buforów, bez zmian
    -Schemat części Rs strony procesora Obrazek
    -Stroną PC zajmuję się ATB-USB-RS232
    -Wybrane fragmenty kodów
    *
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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

    *
    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.

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


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


    Z góry dziękuję wszystkim za pomoc i życzę Wesołych Świąt !



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 kwi 2019, o 18:26 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 04 paź 2013
    Posty: 501
    Lokalizacja: Siedlce
    Pomógł: 9

    Czy na prototypach działa wszystko w porządku a w miejscu pracy są problemy?
    Podejrzewam że coś ci się w kabelku jakaś "szpilka indukuje" czy kabelki leżą w pobliżu innych kabli?

    _________________
    Ucz się ucz ,bo po to tutaj jesteś...



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 kwi 2019, o 19:33 
    Offline
    Nowy

    Dołączył(a): 15 lip 2016
    Posty: 6
    Pomógł: 0

    Co do wielkości buforów to testowane były od najmniejszych do wręcz ogromnych niestety zero poprawy :/

    Natomiast co do elektroniki, to hmm mało prawdopodobne ponieważ płytkę stosuję któryś raz i pierwszy raz mam taki problem. Ale muszę dodać że jest to pierwszy projekt gdzie procesor komunikuję się z PC wcześniejsze były procesor do procesora i wszytko śmigało na moich płytkach...

    Z własnej obserwacji wydaję mi się że jest to błąd kodu.. ale już nie mam pomysłu, widać jakby bufory się przepełniały albo coś się nadpisywało ponieważ wraz z częstym wysyłaniem po rs485 z PC na procka jedna wartość wyświetlana na LCD zaczyna wariować... gdzie ta wartość nie ma żadnego powiązania z rs .



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 kwi 2019, o 20:32 
    Offline
    Moderator
    Avatar użytkownika

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

    No zdecydowanie coś źle robisz - czyli babol w kodzie - ale ciężko coś podpowiedzieć - nie widząc co dokładnie robisz w tym swoim kodzie

    _________________
    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 kwi 2019, o 09:59 
    Offline
    Nowy

    Dołączył(a): 15 lip 2016
    Posty: 6
    Pomógł: 0

    Wiec tak, po uprzednim opierdzieleniu przez Pana Mirka wywaliłem z kodu praktycznie wszytko, zostawiłem tylko prosty licznik w celu sprawdzenia czy się procesor nie wiesza oraz obsługę odbierania danych przez Rs i odpowiadania.

    Głównym celem programu jest odesłanie wybranej wartości tablicy RS485[40] --------> PC wysyła zapytanie "PolWib =1,1" procesor odpowiada wysyłając Polwib =1,RS485[1].

    Po odciążeniu procesora nic się nie zmieniło, jeśli ustawię żeby to procesor wysyłał jakiś ciąg znaków na PC wszytko przebiega bez najmniejszych problemów, gdy natomiast PC zacznie odpytywać następują randomowe resetowania procesora.


    Główny:

    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.



    Ustawienia w bibliotece MK_USART:

    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.


    Komendy AT:

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



    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.


    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.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 kwi 2019, o 11:44 
    Offline
    Użytkownik

    Dołączył(a): 27 cze 2018
    Posty: 116
    Pomógł: 6

    patrykt30 napisał(a):
    z częstym wysyłaniem po rs485 z PC na procka jedna wartość wyświetlana na LCD zaczyna wariować... gdzie ta wartość nie ma żadnego powiązania z rs .


    Tu coś czuć jakby brakowało pamięci i/lub rozpasany stos.

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 kwi 2019, o 14:18 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 04 lut 2014
    Posty: 164
    Pomógł: 3

    Miałem kiedyś podobny problem przy połączeniu z PC. Program z PC wykonywał detekcję twarzy poprzez kamerkę, zliczał osoby i ilość osób przesyłał do atmegi gdzie ich wartość była sumowana. No i frustracja - ilość osób jest przesyłana a licznik sumy wszystkich osób jest ciągle zero. Zajęło to dłuższą chwilę za nim zrozumiałem, że z jakiegoś powodu nowe dane resetują mi mikrokontroler.
    Problem rozwiązałem wtedy połowicznie - po odebraniu liczby z PC zapisywałem ją od razu do pamięci eeprom i potem gdy przychodziła nowa zostawała dodawana do tej zapisywanej i nadpisywała tą zapisaną. Kod był dość krótki, co powodowało takie zachowanie, nie znalazłem odpowiedzi.

    _________________
    ::::::: C ::::::::::
    :::::: C++ :::::::::



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 kwi 2019, o 18:13 
    Offline
    Użytkownik

    Dołączył(a): 05 wrz 2017
    Posty: 169
    Pomógł: 31

    Nie wiem czy przy BDR 9600 to będzie miało tak duże znaczenie ale przyjmując, że korzystasz z przewodu do RS485 o impedancji 120R, Twój terminator jest wyznaczony niepoprawnie, aktualnie masz terminator równy 107R. Proponuje coś w okolicy R12 = 130R, R13=R14 = 680R lub 720R, co da odpowiednio 118,6R i 119,2R.
    Druga sprawa to połączenie potencjałów odniesienia, nie wiem jak to połączyłeś ale sprawdź czy Twój układ będzie działał z drugim takim samym układem "udającym PC" jeśli tak, to znaczy że masz namieszane w przewodach itp, jeśli nie to babol jest w kodzie tak jak poprzednicy sugerowali.



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

    Strefa czasowa: UTC + 1


    Kto przegląda forum

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


    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:  
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO