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 03:20


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 12 ] 
    Autor Wiadomość
    PostNapisane: 25 mar 2012, o 16:40 
    Offline
    Użytkownik

    Dołączył(a): 18 lut 2012
    Posty: 50
    Pomógł: 0

    Witam
    W teorii udało mi się zaprogramować TIMER 1 mojego procesora tak aby cały port C był pod jego "wpływem" ale w praktyce program robi co mu się podoba(np. nagle z 0% impulsu przeskakuje na 80%) a reakcja na przyciski (jeżeli jest to) jest bardzo ale to bardo opóźniona. Oto kawałek mojego kodu, proszę o pomoc jak naprawić działanie tego programu bo już nie mam pomysłu co tam wstawić.
    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: 25 mar 2012, o 18:24 
    Offline
    Użytkownik

    Dołączył(a): 07 mar 2012
    Posty: 54
    Pomógł: 0

    wydaje mi sie ze zle ustawiles bity do trybu CTC co wiecej w złych rejestrach



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 25 mar 2012, o 18:29 
    Offline
    Moderator
    Avatar użytkownika

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

    Ale poczekaj poczekaj bo rozpędziłeś się za mocno :(

    o ile pierwsze 3 linijki konfiguracji timera1 rozumiem to dalej zaczyna się niestety "amba" :(

    zezwalasz na przerwanie CompareMatch - a gdzie masz procedurę obsługi tego przerwania ??? Nie ma jej w kodzie zatem procek się wciąż resetuje - nic nie może ci działać z takim kodem

    Poza tym co to są pwm1, 2 itd ??? sorki ale w ogóle nie wiem o co chodzi bo ten kod jakby wskazuje (tylko się domyślam tutaj) na PWM programowy a ty piszesz coś o sprzętowym

    zatem jeśli to nie jest pełny kod - to nic a nic ja przynajmniej nie jestem w stanie pomóc czy podpowiedzieć dalej. A jeśli pełny no to masz odpowiedź dlaczego on w ogóle nie działa.

    _________________
    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: 25 mar 2012, o 18:29 
    Offline
    Moderator
    Avatar użytkownika

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

    wasu napisał(a):
    wydaje mi sie ze zle ustawiles bity do trybu CTC co wiecej w złych rejestrach


    Dobrze jest ustawiony WGM12 bo w m644P znajduje się on właśnie w tym rejestrze ;) nota PDF - nota ;)

    _________________
    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: 25 mar 2012, o 20:48 
    Offline
    Użytkownik

    Dołączył(a): 18 lut 2012
    Posty: 50
    Pomógł: 0

    przedstawiony kod to tylko wycinek, obsługa "pwm1 ..." jest opisana poza programem (według przykładu z płyty)
    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: 25 mar 2012, o 21:51 
    Offline
    Moderator
    Avatar użytkownika

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

    Nie no posłuchaj - ale co to jest K_W() ? nie można tak po kawałku odsłaniać swojego kodu - to nie kalambury albo rebus. Tylko fragmentów, które są z DVD nie musisz wklejać bo je wszyscy mamy pod ręką

    Poza tym napisz może co chcesz dokładnie uzyskać - bo nikt ci tu nie naprawi programu - tym bardziej jeśli podchodzisz do jego napisania całkiem od tyłu że tak powiem.

    Tak czuję że nie masz tu żadnej obsługi drgań styków itp ....

    _________________
    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: 25 mar 2012, o 22:26 
    Offline
    Użytkownik

    Dołączył(a): 07 mar 2012
    Posty: 54
    Pomógł: 0

    Mirku moglbys wskazać gdzie znajduje się ten rejestr Timera? Ja korzystam z Atmegi644P ale nie moge znalezc tego w nocie, tym bardziej ze Timer 1 jest 16 bitowy a nie 8



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 25 mar 2012, o 22:34 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    zerknij od strony 132 noty

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 25 mar 2012, o 22:34 
    Offline
    Moderator
    Avatar użytkownika

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

    wasu napisał(a):
    Mirku moglbys wskazać gdzie znajduje się ten rejestr Timera? Ja korzystam z Atmegi644P ale nie moge znalezc tego w nocie, tym bardziej ze Timer 1 jest 16 bitowy a nie 8


    No ale jaki rejestr Timera1 tzn który ? bo przecież jest ich sporo - wystarczy zajrzeć do rozdziału o tym timerze i w nim na ostatni podrozdział o nazwie "Register description" przecież taki podrozdział masz w każdym rozdziale ;)

    hmmm chodzi ci o rejestr licznika timera1 ???? jeśli tak to ten akurat w każdym procku będzie taki sam

    TCNT1

    _________________
    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: 26 mar 2012, o 16:34 
    Offline
    Użytkownik

    Dołączył(a): 18 lut 2012
    Posty: 50
    Pomógł: 0

    Oto cały 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.

    Chodzi o to że chociaż ten program robi(o ile można to tak nazwać) co do niego należy to reakcja na bodźce zewnętrzne (klawisze) jest bardzo toporna tz. że jak nacisnę klawisz to program kompletnie na niego nie raguje, dopiero po przytrzymaniu klawisza na ok 5s program postanawia zareagować. Co prowadzi do tego, że dopisywanie dodatkowych funkcji wydaje mi się na razie bez sensu bo i tak ich działanie tylko jeszcze bardziej spowolni proces wykonywania programu.
    Dlatego się pytam jak temu zaradzić aby poza obsługą PWM na więcej niż dwóch sprzętowych kanałach dodać jakieś ciekawe możliwości programu.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 26 mar 2012, o 19:34 
    Offline
    Moderator
    Avatar użytkownika

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

    Po pierwsze to mam nadzieję że pobrałeś aktualizację do kodów do LCD ???

    ale teraz do meritum.

    Program działa dokładnie tak jak go napisałeś. Powiedz czego ty się spodziewasz po takiej obsłudze klawiszy gdzie wstawiłeś czasy 80ms !!!! a wartości PWM zwiększasz/zmniejszasz o 1 !!!!! no weź sobie kalkulator w rękę i policz po jakim czasie uda ci się zwiększyć PWM od 0% do 100%

    80ms * 256 = ok 20 SEKUND !!!

    więc dziwisz się dlaczego reakcja na klawisze jest toporna ? hmmmm ?

    Albo wstaw sobie mniejsze opóźnienia np 20ms i już będzie nieco lepiej

    albo poczytaj najpierw dalej książkę jeszcze i zobacz jak się pisze programy i funkcje nieblokujące. Rozdział "Wstęp do programów czasu rzeczywistego" ;)

    _________________
    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: 27 mar 2012, o 15:51 
    Offline
    Użytkownik

    Dołączył(a): 18 lut 2012
    Posty: 50
    Pomógł: 0

    Problemem było danie złego TIMERA ponieważ kiedy ustawiłem TIMER0 program działa normalnie



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

    Strefa czasowa: UTC + 1


    Kto przegląda forum

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