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

 
 
> а покажите АЦП на иаре, пожалуйста
d71
сообщение Jun 3 2007, 13:06
Сообщение #1


Частый гость
**

Группа: Новичок
Сообщений: 91
Регистрация: 24-12-05
Из: г. Благовещенск
Пользователь №: 12 614



поиск только запутал сильнее crying.gif
покажите как оно инициализируется и тупо в переменную результат загнать
что-то не нашел я примера, весь поиск перекопал - там всё сильно заумно : (
мне бы для старта пару строк мега и тини, всёравно
---
раньше внешний по i2c пробовал, но там совсем всё по другому


--------------------
нет ничего невозможного, есть трудные пути... других не ищем
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
defunct
сообщение Jun 3 2007, 14:06
Сообщение #2


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Пример с работы АЦП с частотой дискретизации Fdescr.
Код
#define Fosc     16000000
#define Fdescr  4000

#define ADC_CONTROL (1 << ADEN)|(1 << ADIE)|(1 << ADPS2)|(1 << ADPS1)
#define MUX_CONTROL (1 << REFS1)|(1 << REFS0)

void adc_Init(void)
{
// init sampling timer
    TIMSK |= (1 << OCIE1A);
    OCR1A = Fosc / Fdescr; // for 4Khz sampling
    TCCR1B = (1 << WGM12) | 1; // запуск таймера
    
// turn off analog comparator
    ACSR = 0x80;
    
// init Adc in single conv mode
    ADCSRA = ADC_CONTROL;
    ADMUX = MUX_CONTROL;
}


/********************************************************
* adcBeginConversion()                                  *
* ---> channel - particular MUX channel                 *
* <--- returns nothing                                  *
********************************************************/
void adcBeginConversion(U8 channel)
{
    ADMUX = (MUX_CONTROL | channel);
    ADCSRA = ADC_CONTROL | (1 << ADSC);
}


/********************************************************
*       Sampling Timer Interrupt service routine        *
********************************************************/
#pragma vector=TIMER1_COMPA_vect
__interrupt void T1OCAISRHandler(void)
{
    adcBeginConversion( 0 );
}

/********************************************************
*            ADC Interrupt service routine              *
********************************************************/
#pragma vector=ADC_vect
__interrupt void AdcISRHandler(void)
{
    U16 Val = ADC;
    ....
}
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 19:55
Рейтинг@Mail.ru


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