logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[ATMEGA 8] Konfiguracja ADC jako multiplekser w ATMEGA 8 z użyciem BASCOM

as1200 15 Sty 2014 18:46 2757 4
REKLAMA
  • #1 13180392
    as1200
    Poziom 12  
    Witam,

    Niedawno na forum poruszyłem temat problemu z uruchomieniem komparatora wewnętrzego Atmegi 8 w Bascomie.
    Dla zainteresowanych tutaj jest Link.

    Rozwijając ten temat postanowiłem wykorzystać przetwornik analogowo-cyfrowy ADC jako multiplekser kilku napięć,
    które będą porównywane z jednym napięciem podłączonym do komparatora.

    Aby nie komplikować opisu na schemacie podłączyłem tylko jedno napięcie z potencjometru do ADC.
    Drugi potencjometr podaje napięcie na jedno z wejść komparatora.

    [ATMEGA 8] Konfiguracja ADC jako multiplekser w ATMEGA 8 z użyciem BASCOM

    Cały problem polega na odpowiednim (programowym) "podłączeniu" wejść ADC do drugiego z wejść komparatora.
    Po przeszukania helpa Bascoma i wujka Google, niewiele udało mi się znaleźć ale jednak coś wykombinowałem...
    Biorąc pod uwagę to jak niewiele jest informacji na ten temat postanowiłem właśnie dlatego umieścić tego posta.

    Poniżej listing programu.
    Nie wiem czy wszystko zrobiłem tak jak powinno być, więc proszę o uwagi.

    Nie wiem np. czy w programie wykorzystanie funkcji: A = Getadc(0), jest uzasadnione?
    Czy można to zrobic inaczej...?

    Pragnę jedynie zaznaczyć, że program działa prawidłowo.
    Dioda LED mruga przez 50ms gdy poziomy napięć zmieniają się między sobą.

    Kod: text
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #2 13181177
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #3 13181244
    as1200
    Poziom 12  
    Gdy zamieniałem A = Getadc(0) na A = Getadc(1) lub A = Getadc(2) i odpowiednio miałem podłączone potencjometry układ działał z wybranym potencjometrem.

    Gdy wyrzuciłem z programu właśnie ten zapis A = Getadc(0) nie było żadnej reakcji.

    Jak w takim razie, gdy nie ma powyższego zapisu wybierałoby się odpowiedni kanał z ADC?

    Dodano po 1 [godziny] 2 [minuty]:

    Dzięki "emarcus", za naprowadzenie mnie na właściwą drogę :)

    Po zapoznaniu się z datasheet Atmegi 8 (str.186-188 oraz rejestrów na str.309) troszkę mi się rozjaśniło.

    Oto poniżej kod, który stworzyłem na podstawie powyższego.
    Sprawdzę działanie w praktyce jutro.
    Gdyby było coś jeszcze w nim nie tak to proszę o reakcję :)

    Kod: text
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • Pomocny post
    #4 13182117
    Konto nie istnieje
    Poziom 1  
  • #5 13183522
    as1200
    Poziom 12  
    Dzisiaj sprawdziłem działanie kodu w układzie i wszystko śmiga aż miło. :)

    Wielkie dzięki "emarkus" za pomoc w ogarnięciu tematu ADC i komparatora.

    Na podsumowanie tego postu mogę napisać tym wszystkim którzy unikają jak ognia DATASHEET, że robią olbrzymi błąd a taki diabeł nie straszny z niego.... :)

    Niniejszym temat zamykam.
REKLAMA