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 19 lip 2025, o 22:07


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
    Autor Wiadomość
    PostNapisane: 11 gru 2012, o 23:51 
    Offline
    Nowy

    Dołączył(a): 11 gru 2012
    Posty: 3
    Pomógł: 0

    Witam, wszystkich to mój pierwszy post.
    Chcę w przerwaniu zegarowym generować sygnał 36khz. Do PB1 jest podpięta dioda, i na Tsopie 2236 odbieram sygnał(do wyjścia podłączyłem diodę). Efekt tego kodu jest taki, że dioda z Tsopa na początku whila przygasa(czyli tak jakby odbierało ten sygnał) a następnie znów mamy wysoki stan. Nie mam pojęcia w czym tkwi problem, procesor pracuje na 1Mhz, bez prescalera , czyli jeden 'cykl zliczania' trwa 1us, gdy z 241 doliczamy do 255 raz na niskim raz na wysokim to wychodzi 27us więc wychodzi 36 khz(dobrze rozumuję?). Bardzo proszę o pomoc...

    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 gru 2012, o 00:07 
    Offline
    Moderator
    Avatar użytkownika

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

    A co robi u ciebie na ZEUSA! w przerwaniu to cli() oraz sei() ?

    Po drugie zajrzyj do rozdziału o pilocie RC5 w niebieskiej książce

    http://atnel.pl/mikrokontrolery-avr-jezyk-c.html

    - tam masz dokładnie jak generować sobie nośną i to za pomocą timera sprzętowego. Nie rób tego programowo bo to porażka :(

    ------------------------ [ Dodano po: kilkunastu sekundach ]

    Poza tym co to za inicjalizacja pinów ???

    PORTB=0x02;

    _________________
    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: 12 gru 2012, o 18:54 
    Offline
    Nowy

    Dołączył(a): 11 gru 2012
    Posty: 3
    Pomógł: 0

    - cli i sei miało zapobiec wywołaniu przerwania w przerwaniu, gdyby przerwanie trwało dłużej niż 13us, gdyż nie mam pewności czy (TCNT0 = 241;) tę wartość trzeba inicjalizować co wywołanie, czy jest to jak w przypadku ustawiania pwm'a że jednokrotne ustawienie wartości wystarczy,

    - sprawdziłem w książce, na stronie 375 fragment kodu przedstawiający wysłanie 1 i 0 zastanowił mnie, i nabrałem wątpliwości co do mojego rozumowania odbiotnika podczerwieni; odbiornik działa na stany czy zbocza?, w moim programie nastawiłem się na generowanie na okrągło 36 khz, i fakt, miga(dioda podłączona do wyjścia tsopa) tylko raz, przy załączeniu, a nie gaśnie na stałe, jak chciałem... choć to gryzie się z tym co jest w dokumentacji http://botland.com.pl/attachment.php?id_attachment=117 strona 3 rys 3

    - co do inicjalizacji pinów, fakt, jest to zrobione nieprofesjonalnie ale w tym krótkim kodzie niczego nie psuje ;-)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 gru 2012, o 19:35 
    Offline
    Moderator
    Avatar użytkownika

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

    SzySzak napisał(a):
    - cli i sei miało zapobiec wywołaniu przerwania w przerwaniu, gdyby przerwanie trwało dłużej niż 13us, gdyż nie mam pewności czy (TCNT0 = 241;) tę wartość trzeba inicjalizować co wywołanie, czy jest to jak w przypadku ustawiania pwm'a że jednokrotne ustawienie wartości wystarczy,


    Panie kolego - normalnie czytaj domyślnie - przerwania są automatycznie blokowane podczas startu procedury obsługi jakiegoś przerwania - więc nie ma sensu wklepywać tam tego cli i sei ... o to chodzi ..

    SzySzak napisał(a):
    - sprawdziłem w książce, na stronie 375 fragment kodu przedstawiający wysłanie 1 i 0 zastanowił mnie, i nabrałem wątpliwości co do mojego rozumowania odbiotnika podczerwieni; odbiornik działa na stany czy zbocza?

    To zależy jak sobie oprogramujesz ten odbiornik - przykład z książki przede wszystkim sprawdza zbocza - chociaż stany też ;)


    SzySzak napisał(a):
    , w moim programie nastawiłem się na generowanie na okrągło 36 khz, i fakt, miga(dioda podłączona do wyjścia tsopa) tylko raz, przy załączeniu, a nie gaśnie na stałe, jak chciałem... choć to gryzie się z tym co jest w dokumentacji http://botland.com.pl/attachment.php?id_attachment=117 strona 3 rys 3

    No tego nie jestem w stanie przeanalizować teraz i coś podpowiedzieć - na pewno w książce masz sprawdzony i dobry przykład jak coś.

    SzySzak napisał(a):
    - co do inicjalizacji pinów, fakt, jest to zrobione nieprofesjonalnie ale w tym krótkim kodzie niczego nie psuje ;-)


    Tak na przyszłość - jeśli ktoś na tym forum oczekuje pomocy ode mnie to wie że kody piszemy zgodnie z dobrą praktyką programowania - ma to ułatwiać zadanie przede wszystkim tym których pytasz o poradę. Pomyśl sobie - TY WIESZ co tam miałeś na myśli - ale inni muszą tracić dodatkowy czas na odcyfrowywanie twoich pomysłów - to tak samo jak w pracy grupowej/zespołowej jest oznaka braku szacunku (tzn może trochę przejaskrawiam) .... ale jak pisać kod - to porządnie. Uczulam na to przez całą książkę ;) .... to się przyda nie tylko tobie. Choć wielu mówi - "aaaaa ja tam tylko dla siebie będę pisał programy - do swoich celów"

    a później co ? pytanie na forum ???? i wychodzi szydło z worka oraz brzydkie przyzwyczajenia hmmmm ?

    więc polecam od początku dobrze pisać kod - w przeciwnym przypadku - ja nie mając za dużo czasu na analizę dodatkową na pewno będę omijał takie posty/pytania - z "takim" kodem ok ?

    to taka uwaga mał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: 12 gru 2012, o 19:49 
    Offline
    Nowy

    Dołączył(a): 11 gru 2012
    Posty: 3
    Pomógł: 0

    ok, następnym razem będzie porządny kod ;-) dziękuje za konstruktywną krytykę



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

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