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 lip 2025, o 12:55


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
    Autor Wiadomość
    PostNapisane: 26 kwi 2017, o 19:58 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 13 cze 2016
    Posty: 66
    Lokalizacja: Katowice
    Pomógł: 1

    Witam,
    Jak w tytule, jestem w trakcie ćwiczeń z BB - Multipleksowanie na 7-seg LED.
    Ogólnie kod z pendrive jest pod ATmege32 a używam 328p więc między inicjalizacją Timera0 są drobne różnice - poległem :(
    Starałem się na spokojnie chyba z 10x zmieniać kod i efekty były różne ale po kilku próbach znalazłem opcje, które w pewnym stopniu działają - wyświetlacz działa tylko że bardzo chaotycznie, widać jak te cyfry płyną jednak nic wyraźnie... Domyślam się że to będzie tylko kwestia poprawy ustawień tego timera i wyświetlanie się uspokoi :)

    A tak dodatkowo największy problem sprawiło mi w zasadzie zrozumienie noty. Timer0 dzieli się na A i B to samo Timer1 i Timer2.
    Opis ustawień bitu WGM jest np. tylko w rejestrze timera A z kolei bity do ustawień prescalera tylko w B <--W tym momencie zrobił mi się mętlik w głowie, nie wiem czy to jest zgodne dla A i B czy jak ?
    Kolejną rzeczą są bity jakie można znaleźć w pliku "iom328p.h" - Bity z noty nijak się mają do tych z pliku (działają te z pliku różnią się tylko dopiskami typu 0A/1A/0B itp. np. OCIE2B można znaleźć w pliku a OCIEB/OCIEA w nocie... No ale tyle udało mi się znaleźć.
    Koniec końców nie jestem w stanie stwierdzić co pomieszałem, jest to w zasadzie pierwszy raz kiedy próbuje sobie wykorzystać timer :)

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


    Oczywiście przykład jak już wspomniałem z pendrive'a - Staram się go dostosować :)
    Jeśli ktoś ma chęci i czas to nie pogardzę dodatkowym wyjaśnieniem co do tej noty... Dosyć mi to zamieszało :)

    PS: Jeśli to potrzebne mogę wrzucić filmik z pracy wyświetlacza.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 26 kwi 2017, o 20:33 
    Offline
    Użytkownik
    Avatar użytkownika

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

    W nocie masz kilka tabelek odnośnie timera 2
    i tak np:
    Obrazek
    z której wynika że Aby ustawić tryb CTC (MODE2) który próbujesz ustawić to trzeba ustawić tylko WGM21 na 1 a Ty ustawiasz WGM22 który według tabelki jest trybem MODE4 opisanym jako RESERVED czyli takiego trybu nie ustawiamy.

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

    reszta wydaje się być OK



    Ostatnio edytowano 26 kwi 2017, o 20:41 przez xentis, łącznie edytowano 3 razy

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 26 kwi 2017, o 20:39 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 01 lis 2015
    Posty: 1448
    Lokalizacja: okolice Warszawa
    Pomógł: 149

    witam,
    natomiast jeżeli chodzi o timer 0.
    ustawienie TIMER0 -328p
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Dobrze zerknij do noty. ;)



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

    Dołączył(a): 13 cze 2016
    Posty: 66
    Lokalizacja: Katowice
    Pomógł: 1

    Tak masz rację z tym Timer2, kilka razy zmieniałem timer w programie i się pomyliłem przy opisywaniu problemu :)
    No ale tak, oboje podaliście przykład gdzie tryb CTC ustawiacie bitem WGM w rejestrze np TCCR2A/TCCR0A z kolei prescaler już w TCCR2B/TCCR0B, z tym właśnie miałem problem, rozumiem, że w taki sposób to trzeba robić tak? Z uporem chciałem wszystko ustawić w jednym rejestrze... To samo z zezwoleniem na przerwanie :) Wydawało mi się, że wszystko musi być w tym samym... :) Teraz dużo mi się wyjaśniło, jednak dalej nie działa prawidłowo - Wyświetlanie nie szaleje zamiast tego mam na każdej pozycji 1 (przed while ustawiłem, żeby wyświetliło kolejno 1,2,3,4), program jak wspominałem od Mirka więc nie zamieszczam całości :).

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


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

    W związku z tym zamieszaniem A/B B/A spróbowałem obu wersji - działa tylko B, przy COMPA nie działa nic.



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

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

    Trochę mylisz pojęcia.TCCR2A i TCCR2B są rejestrami konfiguracyjnymi jednego timera, poprostu bitów konfiguracyjnych jest za dużo na jeden rejestr 8-bitowy więc zrobili po dwa A i B. Osobna sprawa to rejestry porównania (OCR2A i OCR2B) faktycznie może to trochę wprowadzać w błąd. Ale oba te rejestry również dotyczą jednego licznika poprostu producent dał możliwość generowania dwóch różnych zdarzeń dla dwóch różnych porównań.
    Jeszcze jedno, wcześniej nie zwróciłem na to uwagi, w Twoim przypadku nie powinieneś używać rejestru porównania B ponieważ owszem przy porównaniu wykonuje się przerwanie od niego ale licznik nie jest zerowany tylko zlicza dalej (zgodnie z tabelką jaką podałem wyżej dla trybu CTC max wartością do której zlicza jest wartość zawarta w rejestrze OCR2A).


    Autor postu otrzymał pochwałę


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

    Dołączył(a): 01 lis 2015
    Posty: 1448
    Lokalizacja: okolice Warszawa
    Pomógł: 149

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


    Autor postu otrzymał pochwałę


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

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

    No i oczywiście procedura obsługi przerwania CompareMatch dla A



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 27 kwi 2017, o 09:41 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 13 cze 2016
    Posty: 66
    Lokalizacja: Katowice
    Pomógł: 1

    Aaaa.... Widzicie, tu był pies pogrzebany :) tak więc teraz musze sobie na nowo notę przestudiować i będzie jaśniej :)
    Jak wrócę do domu to zaraz sprawdzę co i jak, czy zadziała :)
    Jeszcze raz dzięki!!



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 27 kwi 2017, o 17:57 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 13 cze 2016
    Posty: 66
    Lokalizacja: Katowice
    Pomógł: 1

    Działa, wszystko się już zgadza :) Teraz już to rozumiem, dzięki wielkie !



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

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 10 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:  
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO