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 18 maja 2025, o 04:17


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 11 ] 
    Autor Wiadomość
    PostNapisane: 7 sty 2015, o 14:31 
    Offline
    Użytkownik

    Dołączył(a): 21 gru 2014
    Posty: 26
    Pomógł: 0

    Witam!
    Chciałem wykonac program który wykorzystuje dwa switche jeden zapala wszystkie diody ( 7) a drugi wykonuje petle które zapalaja jedna diode a poprzednia gasza (1000>0100>0010>0001 etc) jednak po zapaleniu jednej diody uC sie zwiesza i nie chce isc dalej. Oto 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.
    ]
    Chodziło mi głownie aby w kazdej chwili porgram mógł być przerwany ldatego w tych dwóch pentlach są instrukcje if.
    Pozdrawiam



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 7 sty 2015, o 15:02 
    Offline
    Nowy

    Dołączył(a): 05 sty 2014
    Posty: 12
    Lokalizacja: Malbork
    Pomógł: 1

    obejrzyj ten poradni
    http://mirekk36.blogspot.com/2014/05/mi ... rawki.html


    Autor postu otrzymał pochwałę


    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 7 sty 2015, o 18:40 
    Offline
    Użytkownik

    Dołączył(a): 04 cze 2013
    Posty: 517
    Pomógł: 26

    A co to za pętla for(;;)?

    _________________
    Przewodnik|Sterownik akwariowy



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 7 sty 2015, o 18:51 
    Offline
    Nowy

    Dołączył(a): 05 sty 2014
    Posty: 12
    Lokalizacja: Malbork
    Pomógł: 1

    To pętla nieskończona, to samo co while(1)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 7 sty 2015, o 18:51 
    Offline
    Użytkownik

    Dołączył(a): 21 gru 2014
    Posty: 26
    Pomógł: 0

    to taka pętla która prowadzi do nieskonczoności. No np while(1) = for(;;) no i prawie to samo jest w do{}while. No ale różnice chyba każdy będzie widział
    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.

    To jest mój kod, tylko coś mi wydaje się za długi. Chciałem utworzyć funkcje która by zastępowała te podwójne ify tylko nie wiem jak się za to zabrac.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 sty 2015, o 15:19 
    Offline
    Użytkownik

    Dołączył(a): 21 gru 2014
    Posty: 26
    Pomógł: 0

    Witam, mam problemy z timerami, Mam atmege 32. Chcialem skorzystać z timera 8 bitowego pierwszego ( TCRR0 ) z prescallerem 256 bit ( TCCR0 |= (1 << CS01) | (1 << CS00) ) By otrzymać przerwanie co 100ms. Jednak moja Atmega nie reaguje po zapodaniu wsadu.

    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: 12 sty 2015, o 15:38 
    Offline
    Użytkownik

    Dołączył(a): 19 cze 2014
    Posty: 247
    Pomógł: 15

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

    _________________
    http://elektropanel.pl



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 sty 2015, o 19:08 
    Offline
    Użytkownik

    Dołączył(a): 21 gru 2014
    Posty: 26
    Pomógł: 0

    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.

    Bez zmian, nadal nie działa.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 sty 2015, o 21:40 
    Offline
    Nowy

    Dołączył(a): 22 gru 2014
    Posty: 8
    Pomógł: 0

    Spróbuj przenieść deklaracje zmiennych counter, counter1 z procedury obsługi przerwania przed funkcję 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.


    Ponadto preskaler /256 ustawiany jest przez (1 << CS02) ;) Zajrzyj do dokumentacji, strona 82.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 sty 2015, o 22:05 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 29 sty 2012
    Posty: 777
    Lokalizacja: Karpicko k. Wolsztyna
    Pomógł: 197

    Konfigurujesz Timer0 i obsługę przerwania masz dla Timera1.

    Poza tym jeśli korzystasz z trybu CTC i ustawisz licznik TCNT0 na wartość 131 a OCR0 na 255 to timer zliczy ci 125 impulsów tylko do wystąpienia pierwszego przerwania. Bo po zrównaniu się TCNT0 z OCR0 (i wystąpieniu przerwania) licznik będzie liczył od 0 do 255 i w rezultacie przerwanie będzie występować po zliczeniu 256 impulsów. Trochę się chyba koledze pomyliło z trybem Normal i przerwaniami od przepełnienia.

    W trybie CTC ustawia się wartość impulsów, które timer ma zliczyć w rejestrze OCR. Wtedy licznik TCNT zaczyna liczyć od zera i jeśli jego wartość zrówna się z OCR to zostanie wyzerowany i zacznie liczyć znów od zera. I przy okazji zostanie wywołane przerwanie Compare Match.

    Konfiguracja przerwania 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.


    Autor postu otrzymał pochwałę


    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 14 sty 2015, o 20:57 
    Offline
    Użytkownik

    Dołączył(a): 21 gru 2014
    Posty: 26
    Pomógł: 0

    Dziekuje bardzo, wasze wskazówki bardzo pomogły mi:)



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

    Strefa czasowa: UTC + 1


    Kto przegląda forum

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