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 26 lip 2025, o 01:53


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
    Autor Wiadomość
     Tytuł: ADC
    PostNapisane: 19 lip 2012, o 09:26 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 25 maja 2012
    Posty: 296
    Lokalizacja: Chebzie Dolne
    Zbananowany użytkownik

    Pomógł: 6

    Witam.
    Próbuje zrobić sterowanie silnikiem DC za pomocą PWM. PWM jest wysterowany za pomocą potencjometru, a wartośc jest pobierana z
    ADC.
    Potrzebuje rozdzielczość 8 bitową przetwornika - czyli włączam w rejestrze ADMUX |= (1<<ADLAR); ale nie wiem co dalej.
    Zakres jest teraz do 32655 jak pokręcam dalej to przeskakuje na wartości ujemne.
    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.


    Co to za rejestr ADCW?
    Gdzie mogę ustawić na piechotę rejestry ADCH i ADCL??

    _________________
    Inspekcja TV kanalizacji
    Programowanie



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: ADC
    PostNapisane: 19 lip 2012, o 10:15 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 28 maja 2012
    Posty: 471
    Lokalizacja: ZGY/ZS
    Pomógł: 30

    arko_go napisał(a):
    return ADCW;


    Zwracasz dwa bajty z pomiary (ADCH i ADCL scalone w jeden bajt) czyli 16bitów, ale sześciu pierwszych jako tako nie ma czyli de fakto 10 bitów.

    arko_go napisał(a):
    lcd_int(pomiar (5));


    Wyrzucasz na LCD liczbę int, czyli z zakresu −32768 do +32767. Dlatego zamiast np. liczby 40000 na wyświetlaczu otrzymasz wartość ujemną (licznik się przekręci). Jeśli chcesz rozdzielczość 8 bitową to musisz zrobić coś takiego

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


    Działa to tak, że zerujesz dwa bity najmłodsze (najmniej znaczące) i zamiast 10 bitów masz już 8, ale należy całość jeszcze przesunąć o dwa miejsca w prawo, aby wynik zmieścił się w jednym bajcie

    _________________
    eDiyCraft.blogspot.com



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: ADC
    PostNapisane: 19 lip 2012, o 10:23 
    Offline
    Uzytkownik zasłużony dla forum.atnel.pl
    Avatar użytkownika

    Dołączył(a): 16 lip 2012
    Posty: 2088
    Lokalizacja: Leżajsk / Kraków
    Pomógł: 411

    Możesz tak przerobić funkcję

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

    _________________
    Dragonus Cracovus: Biomagia



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: ADC
    PostNapisane: 19 lip 2012, o 10:41 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 25 maja 2012
    Posty: 296
    Lokalizacja: Chebzie Dolne
    Zbananowany użytkownik

    Pomógł: 6

    A ja rozwiązałem to inaczej. Ustawiłem bit ADLAR i zwróciłem i przesunąłem wartość ADCW>>8.
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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


    i działa super.
    Wielkie dzięki za wytłumaczenie:)

    Pozdrawiam
    Arek

    _________________
    Inspekcja TV kanalizacji
    Programowanie



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: ADC
    PostNapisane: 19 lip 2012, o 13:04 
    Offline
    Moderator
    Avatar użytkownika

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

    Uwaga!!!!!! pisałem na forum już to niejednokrotnie w tej linii jest błąd:

    Cytuj:
    ADMUX |= (ADMUX & 0xF8)| kanal;


    ma być tak:

    Cytuj:
    ADMUX = (ADMUX & 0xF8)| kanal;


    (to nic że działa gdy jest tak jak w pierwszym przypadku z błędem - bo działa tylko dla jednego kanału, a dla dwóch albo przy zmianie będzie ZONK)

    _________________
    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  
    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 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