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 30 kwi 2025, o 06:14


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 36 ]  Przejdź na stronę 1, 2  Następna strona
    Autor Wiadomość
    PostNapisane: 9 mar 2016, o 17:22 
    Offline
    Użytkownik

    Dołączył(a): 19 gru 2014
    Posty: 155
    Zbananowany użytkownik

    Pomógł: 0

    chciałbym ogarnąć pomiar czasu impulsu podanego na INT0, impuls na początek pochodzi z Pinu PD0, stworzyłem poniższy 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.


    program oczywiście nie działa :( na wyświetlaczu bardzo szybko miga mi napis start, może ktoś mi pomóc co zrobiłem źle?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 mar 2016, o 17:24 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 11 mar 2014
    Posty: 1475
    Pomógł: 167

    Zdublowały Ci się posty topic14800.html :(

    --
    Pozdrawiam,
    Robert



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 mar 2016, o 17:28 
    Offline
    Użytkownik

    Dołączył(a): 19 gru 2014
    Posty: 155
    Zbananowany użytkownik

    Pomógł: 0

    rskup napisał(a):
    Zdublowały Ci się posty topic14800.html :(

    --
    Pozdrawiam,
    Robert


    Dwa razy wysłałem?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 mar 2016, o 17:34 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 11 mar 2014
    Posty: 1475
    Pomógł: 167

    Czasami się zdarza, jak za szybko klikniesz dwa razy (też potrafi się to zrobić przy odpowiedziach).
    Trzeba liczyć, że moderator wyjdzie z Lochów i przeniesie jeden wątek w otchłań (bo chyba użytkownik nie może usuwać już opublikowanych wątków).

    --
    Pozdrawiam,
    Robert

    ------------------------ [ Dodano po: 1 minucie ]

    O chyba został ten drugi wątek już usunięty.

    ------------------------ [ Dodano po: 14 minutach ]

    Cytuj:
    program oczywiście nie działa :( na wyświetlaczu bardzo szybko miga mi napis start, może ktoś mi pomóc co zrobiłem źle?

    Jak masz ciągły migający start, to pewnie resetuje Ci się procesor. A to pewnie przez błędne lub brakujące wektory przerwań.
    Jaki procesor stosujesz?

    W przerwaniu zmieniasz zbocza na przeciwne, a nie lepiej od razu ustawić reakcję na oba? Teraz jak masz opadające to włączasz bezwarunkowo reagowanie na narastające a przecież jedyne możliwe po opadającym jest narastające. I to samo dotyczy przeciwnego zbocza.

    --
    Pozdrawiam,
    Robert



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 mar 2016, o 17:53 
    Offline
    Użytkownik

    Dołączył(a): 19 gru 2014
    Posty: 155
    Zbananowany użytkownik

    Pomógł: 0

    Masz rację źle ustawiłem wektor przerwań TIMERA zamiast Timer2 ustawiłem Timero, poprawilem procesor się już nie restartuje, ale dalej mi to nie dziala



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 mar 2016, o 17:55 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 11 mar 2014
    Posty: 1475
    Pomógł: 167

    Jakie masz taktowanie procesora? Bo chcesz robić obsługe przerwania timera z częstotliwością 1MHz (co 1us).

    Przestaw na rzadsze przerwania i zobacz czy zadziała.

    --
    Pozdrawiam,
    Robert



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 mar 2016, o 17:57 
    Offline
    Użytkownik

    Dołączył(a): 19 gru 2014
    Posty: 155
    Zbananowany użytkownik

    Pomógł: 0

    procesor taktowany 16 MHz

    ------------------------ [ Dodano po: 4 minutach ]

    próbuję wyświetlić licznik, w pętli while wstawiłem uruchomienie i zatrzymanie Timera 2, oraz próbę wyświetlenia licznika zliczanego w timerze 2, przerwania od INT na razie zaremowałem, niestety na lcd wyświetla mi się 0 (zero)

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


    ------------------------ [ Dodano po: 6 minutach ]

    Jak ustawić reakcje na oba zbocza?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 mar 2016, o 18:04 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 11 mar 2014
    Posty: 1475
    Pomógł: 167

    Jak chcesz mieć szybciej działające zwiększanie zmiennej w przerwaniu, to przeczytaj uwagę z punktu 13 z artykułu Mirka http://mirekk36.blogspot.com/2012/10/ob ... a-cd3.html

    --
    Pozdrawiam,
    Robert

    ------------------------ [ Dodano po: 1 minucie ]

    A zmieniasz zmienną czas? Bo tylko ten prawdziwy zawsze płynie (a nawet niektórzy mówią w nienadający się na forum sposób, choć prawdziwy, że czas zap...).



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 mar 2016, o 18:09 
    Offline
    Użytkownik

    Dołączył(a): 19 gru 2014
    Posty: 155
    Zbananowany użytkownik

    Pomógł: 0

    Poprawiłem, troszkę kod i ruszyło, tylko, że w pętli while daje pomiędzy zboczami zwłokę _delay_ms(1), a więc powinno mi pokazać czas na lcd 1000, a pokazuje 8001



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 mar 2016, o 18:12 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 11 mar 2014
    Posty: 1475
    Pomógł: 167

    Cytuj:
    Jak ustawić reakcje na oba zbocza?

    A odpowiesz na wcześniejsze pytanie jaki masz procesor?
    Bo należy zajrzeć do noty katalogowej (może wybrany przez Ciebie procesor akurat tego nie ma na NT0 :().

    Niektórzy są wzrokowcami i muszą zobaczyć by zrozumieć :) Więc jak zmieniasz działanie kodu, to wrzucaj całe funkcje ze zmianami, bo ciężko się przenosi na Twój kod z pierwszego posta opisywane kolejne zmiany. A było ich już kilka ...

    --
    Pozdrawiam,
    Robert



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 mar 2016, o 18:16 
    Offline
    Użytkownik

    Dołączył(a): 19 gru 2014
    Posty: 155
    Zbananowany użytkownik

    Pomógł: 0

    procesor i taktowanie w tytule postu ATMega 32 taktowanie 16MHz, wydaje mi się , że nie ma możliwości ustawienia INT 0 na reakcję na oba zbocza naraz, wstawiam 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: 9 mar 2016, o 18:23 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 11 mar 2014
    Posty: 1475
    Pomógł: 167

    Cytuj:
    procesor i taktowanie w tytule postu ATMega 32 taktowanie 16MHz, wydaje mi się , że nie ma możliwości ustawienia INT 0 na reakcję na oba zbocza naraz
    A co znaczy druga pozycja?
    Obrazek

    --
    Pozdrawiam,
    Robert



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 mar 2016, o 18:36 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 11 sty 2013
    Posty: 1760
    Pomógł: 196

    rskup napisał(a):
    A co znaczy druga pozycja?

    ...chyba "na opadające" (błędny wpis - wyjaśnienie dalej)
    Posłuchaj/pooglądaj to:http://mirekk36.blogspot.com/2013/12/przerwania-dla-poczatkujacych-czesc-03.html

    Pozdr.



    Ostatnio edytowano 9 mar 2016, o 21:00 przez kicajek, łącznie edytowano 2 razy

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 mar 2016, o 18:42 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 11 mar 2014
    Posty: 1475
    Pomógł: 167

    Licznik włączasz na początku programu. Liczy sobie i generuje co odpowiedni okres czasu znacznik przerwania. Gdy uznajesz, że chcesz liczyć czas, to włączasz przerwania, ale nie zerujesz flagi w TIFR a ta na pewno jest już ustawiana, więc od razu dostajesz na dzień dobry jedno przerwanie gratis :)


    1. Przestaw na początek przerwanie timera na rzadsze, bo teraz masz przerwanie co 16 taktów zegara.
    2. wyłącz przerwania INT0 i przenieś cały kod dotyczący timera do pętli głównej i zobacz czy Ci działa. Jak tak, to dopiero zacznij robić testy to na przerwaniu.

    --
    Pozdrawiam,
    Robert

    ------------------------ [ Dodano po: 1 minucie ]

    Cytuj:
    ...chyba "na opadające"

    Druga pozycja to "Any logical change on INT0 generates an interrupt request."



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 mar 2016, o 19:48 
    Offline
    Użytkownik

    Dołączył(a): 19 gru 2014
    Posty: 155
    Zbananowany użytkownik

    Pomógł: 0

    [quote="rskup"
    2. wyłącz przerwania INT0 i przenieś cały kod dotyczący timera do pętli głównej i zobacz czy Ci działa. Jak tak, to dopiero zacznij robić testy to na przerwaniu.

    "[/quote]
    tak właśnie zrobiłem, przeniosłem włączanie i wyłączanie timera do pętli głównej, a mimo to przy dealy np 100 us pokazuje 800, a przy dealy np 2 ms pokazuje 1600, 8 razy więcej niż w rzeczywistości

    ------------------------ [ Dodano po: 24 minutach ]

    Zmieniłem obsługę przerwania INT 0 na reakcje na oba zbocza, kod o wiele krótszy
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    dalej jednak mam 8 - krotnie zawyżone odczyty



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 mar 2016, o 20:54 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 11 mar 2014
    Posty: 1475
    Pomógł: 167

    A zmieniałeś częstotliwość generowania przerwań? Ustaw tak by timer liczył 10 razy wolniej (w dziesiątkach us) i zobacz czy się nie poprawi. Bo jak Ci wcześniej pisałem, obsługa przerwania zajmuje za dużo czasu. Tak wygląda napisana przez Ciebie procedura po skompilowaniu:
    Składnia: [ Pobierz ] [ Ukryj ]
    język asm
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    A masz na jej wykonanie tylko 16 cykli zegara ...

    --
    Pozdrawiam,
    Robert



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 mar 2016, o 20:59 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 11 sty 2013
    Posty: 1760
    Pomógł: 196

    Witam
    rskup napisał(a):
    Druga pozycja to "Any logical change on INT0 generates an interrupt request."

    Przepraszam - jako że ze wzrokiem nie za bardzo, to zasugerowałem się "pismem obrazkowym" na którym zamaziane było "opadające".

    Pozdr.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 mar 2016, o 21:24 
    Offline
    Użytkownik

    Dołączył(a): 19 gru 2014
    Posty: 155
    Zbananowany użytkownik

    Pomógł: 0

    rskup napisał(a):
    A zmieniałeś częstotliwość generowania przerwań? Ustaw tak by timer liczył 10 razy wolniej (w dziesiątkach us) i zobacz czy się nie poprawi. Bo jak Ci wcześniej pisałem, obsługa przerwania zajmuje za dużo czasu. Tak wygląda napisana przez Ciebie procedura po skompilowaniu:
    Składnia: [ Pobierz ] [ Ukryj ]
    język asm
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    A masz na jej wykonanie tylko 16 cykli zegara ...

    --
    Pozdrawiam,
    Robert

    czyli np wpisac do OCR2 160?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 mar 2016, o 21:38 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 11 mar 2014
    Posty: 1475
    Pomógł: 167

    Cytuj:
    Przepraszam - jako że ze wzrokiem nie za bardzo, to zasugerowałem się "pismem obrazkowym" na którym zamaziane było "opadające".
    Jakiś dziwny pdf dla ATmega32 otworzył mi się z internetu. Miał on zaszarzony fragment w tabeli :( TO chyba taka zmyłka przygotowana przez jego twórców :)

    Cytuj:
    czyli np wpisac do OCR2 160?
    Tak. Choć z tego co pamiętam, to powinno być 159 a nie 160, ale to nie ma większego znacznie (we wzorze do wyliczania wartości dla licznika CTC było zawsze jeszcze -1).

    --
    Pozdrawiam,
    Robert



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 mar 2016, o 21:56 
    Offline
    Użytkownik

    Dołączył(a): 19 gru 2014
    Posty: 155
    Zbananowany użytkownik

    Pomógł: 0

    Powalczę z tym jutro



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 10 mar 2016, o 07:06 
    Offline
    Użytkownik

    Dołączył(a): 19 gru 2014
    Posty: 155
    Zbananowany użytkownik

    Pomógł: 0

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


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


    przerwanie TIMER-a co 10us

    teraz przy _delay_us(50); pokazuje mi wynik 7 po pomnożeniu przez 10 daje 70 us
    a przy _delay_ms(2); pokazuje mi wynik 274 po pomnożeniu przez 10 daje 2740 us
    a wiec źle,

    poprzednia wersja jeżeli wynik podzieli się przez 8 działa idealnie tylko dlaczego wyniki są 8 razy większe coś z TIMER-em chyba źle ustawiam

    ------------------------ [ Dodano po: 16 minutach ]

    Napisałem że działa idealnie ale w zakresie od 46 us do 16 ms, powyżej 16 ms daje kosmiczne wyniki.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 10 mar 2016, o 17:32 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 11 sty 2013
    Posty: 1760
    Pomógł: 196

    Witam
    Jeśli chcesz, to pobaw się w inny sposób pomiaru tego czasu - niech ilość cykli odmierza sam uC bez wyciskania ostatnich soków z TIMER'a0.
    Tu masz taki mały, poglądowy kod jak można to wykonać; wszystko jest raczej zawarte w komentarzach, ale jak by coś to ( jak to mówią dwie pluskwy ) jesteśmy w kontakcie :)
    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.


    ...a - pisane pod ATm8 - 8MHz
    Tutaj wynik podawany jest w ilość=ms czyli w "ms"
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    to trzeba policzyć dla danego presc. oraz taktowania.

    kicajek napisał(a):
    Posłuchaj/pooglądaj to:http://mirekk36.blogspot.com/2013/12/przerwania-dla-poczatkujacych-czesc-03.html

    tam byś to znalazł - ale po co? ;)

    Pozdr.

    edit: te wszystkie zmienne mają takie deklarowane rozmiary ( uint8, 16, 32 ) bo "rozprułem" inny mój kod i tam takie potrzebowałem - oczywiście u siebie możesz dać inne, tylko żeby mieściły się w zakresie.


    Autor postu otrzymał pochwałę


    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 10 mar 2016, o 18:16 
    Offline
    Użytkownik

    Dołączył(a): 19 gru 2014
    Posty: 155
    Zbananowany użytkownik

    Pomógł: 0

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


    Mirek nakręcił tyle poradników a niemalże w każdym oprócz głównego tematu porusza jeszcze tyle ciekawych pobocznych rzeczy, że trudno wiedzieć co jest we wszystkich, dzięki za kod pokombinuję.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 10 mar 2016, o 18:33 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 11 sty 2013
    Posty: 1760
    Pomógł: 196

    Witam
    Hannibal9 napisał(a):
    Mirek nakręcił tyle poradników

    Wiem - szczerze mówiąc to ja też nie mogę tego ogarnąć :D - może by Mu jakieś badania antydopingowe... - ale co jo godom, co jo godom; wnet pójdę na emeryturę, słuchawki na uszy, okulary na oczy... tylko czy będę pamiętał na czym skończyłem? :lol:

    Pozdr.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 10 mar 2016, o 23:09 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 11 mar 2014
    Posty: 1475
    Pomógł: 167

    Cytuj:
    teraz przy _delay_us(50); pokazuje mi wynik 7 po pomnożeniu przez 10 daje 70 us
    a przy _delay_ms(2); pokazuje mi wynik 274 po pomnożeniu przez 10 daje 2740 us

    Nie możesz zmierzyć czasu delaya, bo nie wiesz ile on trwa. Pętla robiona przez kompilator ma trwać przez zadany czas. Ale ty robiąc przerwania co 10us zaburzasz ten czas, bo delay jest wstrzymywany na czas przerwania. Czyli delay trwa zadany czas plus czas wszystkich przerwań w tym czasie.

    Sposób podany przez kicajka jest o tyle lepszy, że przerwania następują co 256 * zadana rozdzielczość, czyli robiąc to samo masz 256 razy mniej przerwań :)

    --
    Pozdrawiam,
    Robert


    Autor postu otrzymał pochwałę


    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 10 mar 2016, o 23:24 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 11 sty 2013
    Posty: 1760
    Pomógł: 196

    Witam
    rskup napisał(a):
    że przerwania następują co 256 * zadana rozdzielczość

    ...a te _delay'e w kodzie są testowe - po wyrżnięciu i podłączeniu "normalnego" przebiegu liczy dość-dość. Dodatkowo grzebiąc przy początkowym TCNT0 można uzyskać dowolne ( w rozsądnych granicach ;) ) minimalne długości mierzonych czasów i w rozsądnej rozdzielczości.
    A no właśnie, nie wiem czy mi umknęło - jaka rozdzielczość Cię interesuje, bo jak startujesz z us a sprawdzasz sek....

    Pozdr.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 10 mar 2016, o 23:38 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 11 mar 2014
    Posty: 1475
    Pomógł: 167

    Cytuj:
    ...a te _delay'e w kodzie są testowe - po wyrżnięciu i podłączeniu "normalnego" przebiegu liczy dość-dość

    To było do kolegi Hannibal9 i jego uwag co do wyników. Bo te jego testy w takiej wersji kodu, były jak gonienie własnego ogona przez kota :)

    --
    Pozdrawiam,
    Robert



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 mar 2016, o 00:58 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 11 sty 2013
    Posty: 1760
    Pomógł: 196

    rskup napisał(a):
    To było do kolegi Hannibal9...

    Wiem, ja tylko uzupełniłem to co napisałeś o "moim" programie.

    Pozdr.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 mar 2016, o 11:05 
    Offline
    Użytkownik

    Dołączył(a): 19 gru 2014
    Posty: 155
    Zbananowany użytkownik

    Pomógł: 0

    Panowie, Koledzy dziękuję za pomoc, moje "wypociny" są związane z pewnym małym projekcikiem, w którym mam zamiar użyć 5 czujników odległości HC-SR04. jestem początkujący w uC i w C, tak się zastanawiam czy nie łatwiej było by zakupią 5 czujników analogowych ( są sporo droższe) i obsłużyć je przez ADC, czy próbować z tymi HC.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 mar 2016, o 11:41 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 11 sty 2013
    Posty: 1760
    Pomógł: 196

    Witam
    Tak szczerze mówiąc to nie wiem jak byś to miał robić za pomocą ADC - ale nie znam tematu; być może tak się robi tylko zastanawia mnie sposób pomiaru bo jego częstotliwość jest ograniczona. Jeśli jeszcze nic nie robiłeś na tych czujnikach to możeT U T A J coś się dowiesz. Co prawda kod "nie po naszemu" ale dobrze komentowany wię można podejrzeć. Tak nawiasem mówiąc na naszym forum często jest jak w kryminale - na samym końcu dowiadujemy się kto jest głównym winowajcą ;) - może trzeba było zacząć od nakreślenia celu, a nie od luźnego zagadnienia "Pomiar czasu trwania impulsu".
    Pięć czujników - ( jak wspominałem nie znam tematu ) tutaj chyba trzeba wykorzystać PCINT - więc jednak odsyłam do (najlepiej od początku ) do cz.III przerwań.

    Pozdr.



    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: 36 ]  Przejdź na stronę 1, 2  Następna strona

    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