реклама на сайте
подробности

 
 
> Atmega8: АЦП мереет то чего нет.
Spider
сообщение Apr 29 2008, 04:40
Сообщение #1


В поисках истины
***

Группа: Свой
Сообщений: 431
Регистрация: 7-01-06
Из: Россия
Пользователь №: 12 923



Имеем AtMega8 с подключеными на ADC0,ADC1,ADC2 сигналами.
Но измерения мягко говоря странные. ADC0 и ADC2 "близки к нолю", т.е. по сути там делитель "вход" которого "висит" в воздухе. На ADC1 есть напряжение около 3х вольт.
Результат измерения получается 4, 805, 800 (ну +-3 от раза к разу). Ну 4 ладно, это 0,018 вольта, 805 тоже понимаю это где-то 3.8В, но от куда 800? Стою осцилографом на этой шожке и ничего не вижу, а измерение есть...
В коде измеряем значения следующим образом:
Код
#include <avr/io.h>
#define AD_CNT        3
#define AD_CLC        5
volatile uint16_t    ADBuf[AD_CNT][AD_CLC];
volatile uint16_t    ADSum[AD_CNT];
volatile uint8_t    src=0,ad_calc=0;

void init_adc(void) {
    uint8_t i,j;
    for (i=0;i<AD_CNT;i++) {
        for (j=0;j<AD_CLC;j++)
            ADBuf[i][j] = 0;
        ADSum[i] = 0;
    }
    ADCH = 0;
    ADCL = 0;
    ADMUX = _BV(REFS0);
    ADCSRA = _BV(ADEN) | _BV(ADPS2) | _BV(ADPS1) | _BV(ADSC);
}

int main(void) {
    PORTC = 0;
    DDRC = 0;

    ....

    init_adc();

    ....

    while(1) {        
        if (bit_is_clear(ADCSRA,ADSC)) {
            uint16_t ADres=ADC;
          

            ADSum[src] -= ADBuf[src][ad_calc];
            ADBuf[src][ad_calc] = ADres;        // Place new value into Buffer
            ADSum[src] += ADres;

            ad_calc++;
            ad_calc%=AD_CLC;
            if (!ad_calc) {
                src++;
                src%=AD_CNT;
                ADMUX = _BV(REFS0) | src;            
            }
            ADCSRA |= _BV(ADSC);
        }
        ....
    }
}
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st June 2025 - 08:39
Рейтинг@Mail.ru


Страница сгенерированна за 0.01357 секунд с 7
ELECTRONIX ©2004-2016