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

[atmega16][Bascom] Problem z ADC

sopelek48 04 Lut 2009 22:26 1775 8
REKLAMA
  • #1 6103899
    sopelek48
    Poziom 10  
    Witam

    Mam następujący problem

    Napisałem program do obsługi ADC
    oto i on
    $regfile = "m16def.dat"
    $crystal = 8000000
    onfig Com1 = Dummy = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0       'konfiguracja portu COM
    $baud = 1200
    Config Lcdmode = Port                                       'Wybieram typ podlaczenia lcd
    Config Lcdbus = 4                                           'LCD podpiety na 4 zyly
    Config Lcd = 16 * 4                                         'Typ LCD
    Config Lcdpin = Pin , Db4 = Portc.5 , Db5 = Portc.4 , Db6 = Portc.3 , Db7 = Portc.2 , E = Portc.6 , Rs = Portc.7       'Jak podpiety LCD
    Config Adc = Single , Prescaler = Auto , Reference = Off    'Konfiguracja ADC
    Start Adc                                                   'Uruchamiam ADC
    Enable Adc
    Cursor Noblink                                              'kursor niewidoczny
    Enable Interrupts
    Enable Int0
                                                'deklaracja zmiennej okreslajacej miesiac roku
    Dim W As Word , Channel As Byte
    Do
      If Channel < 7 Then
      W = Getadc(channel)
      Waitms 10
      W = Getadc(channel)
      Print "@ADC" ; Channel ; "=" ; W ; "#"
      End If
      If Channel > 7 Then 
       channel=0 
      end if
    Loop
    End
    


    Cały problem polega na tym że pokazuje cały czas wartości z przedziału 300-500 nawet jak pod porty konwentera nic nie jest podpięte

    Wie ktoś co może być tego przyczyną ?
    Proszę o pomoc i pozdrawiam
  • REKLAMA
  • #2 6104448
    dawid512
    Poziom 32  
    Reference = Off
    Podałeś napięcie na końcówkę AREF? To że przetwornik zwraca jakąś wartość nawet gdy nie podajemy napięcia na jego końcówkę jest rzeczą normalną.
  • #3 6105764
    sopelek48
    Poziom 10  
    Na Aref jest podane 5V

    Problem jest jeszze taki ze podłączenie pod przetwornik np bateryjki tez nie zmienia pomiarów
    Czy to jest normalne ?
    Pozdrawiam
  • REKLAMA
  • #4 6106645
    nouki
    Poziom 25  
    A masy i zasilania są podpięte wszytkie?
    Proponuje wstawić konkretny przetwornik np.2 i sprawdzić czy działą
  • REKLAMA
  • #5 6107476
    sopelek48
    Poziom 10  
    Oczywiście wszystkie masy i zasilania są podpięte właściewie
    Masa analogowa i cyfrowa łączą się dopiero przy stabilizatorze

    próbowałem wpisywać konkretny nr kanału i efekt był dokładnie taki sam
  • REKLAMA
  • #7 6107665
    sopelek48
    Poziom 10  
    hmm chyba już rozumiem w czym tkwi problem

    Ja zrobiłem tak że 5V które jest jedno dla całego układu dałem na aref
    myśląc że może być traktowane jako napięcie zewnętrzne

    Z tego co rozumiem to nie do końca tak jest ?
    Czy ma to jakieś znaczenie?
    I czy jeśli odłącze 5V od aref,między agnd a aref wstawię kondensator 10uF i w programie zmienię na AVCC to będzie Ok ??
    Pozdrawiam
  • #9 6108026
    snow
    Poziom 31  
    sopelek48 napisał:

    Z tego co rozumiem to nie do końca tak jest ?


    [atmega16][Bascom] Problem z ADC

    wystarczy zajrzeć do dokumentacji i wiadomo jak może być. Inne kombinacje nie wchodzą w gre.
REKLAMA