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

 
 
> ОДнократное преобразование в ATMEGA8
virtuality
сообщение May 18 2006, 14:33
Сообщение #1


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

Группа: Свой
Сообщений: 83
Регистрация: 17-05-06
Пользователь №: 17 190



Вот пример программы:
Код
char lcd_buffer[33];    
int temp=0;

#asm
    .equ __lcd_port=0x18
#endasm
#include<lcd.h>
#include<stdio.h>
#include <90s8535.h>
#include <delay.h>

#define ADC_VREF_TYPE 0x00

interrupt [ADC_INT] void adc_isr(void)
{
temp=ADCW;
delay_ms(20);
ADCSR|=0x40;
     lcd_clear();
     sprintf(lcd_buffer,"%imV",(temp*5-temp/10));
     lcd_puts(lcd_buffer);    
}

void main(void)
{


ADCSR=0x8E;
#asm("sei")
ADMUX=0;

ADCSR|=0x40;
lcd_init(16);
    while (1)
       {
       }
      
}



В принципе все понятно, но как мне сделать однократное преобразование по команде ?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
beer_warrior
сообщение May 18 2006, 20:51
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



Цитата
1. Для чего необходима установка частоты АЦП? Правильно ли я думаю, чтоэ
АЦП работает как отдельный блок, помещая результат в регистр, из которого мы читаем впоследсвии?
Или же АЦП спит, а когда мы ставим бит в ADSC он включается, конвертирует, возвращает результат?
ТОгда в этом случает непонятно для чего нужен этот параметр - частота.


В Мегах(и большинстве других МК) АЦП последовательного приближения - т.е. набираеться код на ЦАП и сравниваеться с входным напряжением с помощью компаратора (схема на странице 193),естественно сразу код подобрать нельзя поэтому он вдвигаеться в хитрый регистр обозначенный на схеме как CONVERSION LOGIC. Для этого нужно некоторое количество тактовых импульсов.Подробнее об том можно почитать в книжках по аналоговой технике.
Частота выбираеться из соображений компромиса между быстордействием и точностью.(Чем больше время тем ближе будет напряжение на входном конденсаторе к истинному напряжению на входе).
Сам АЦП представляет из себя автомат управляемый внутренней логикой т.е срабатывает триггер, АЦП выполняет заданную последовательность операций - выборка - подбор кода - выдача в регистр и устанавливает бит готовности. Если стоит режим Free Running,
каждое новое преобразование начинаеться по завершению предыдущего (как бы генерит прерывание сам для себя).

Насчет VREF - в большинстве случаев достаточно внутреннего источника, т.к. АЦП 10-битный и годиться скорее очень для оценки питающих напряжений, температуры, аналоговых органов упраления, а не для точных измерений. В таких случаюх лучще применять специализированный кристалл.


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 5th September 2025 - 12:54
Рейтинг@Mail.ru


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