роботы робототехника микроконтроллеры


 Страниц (1): [1]   

> Описание: АЦП в атмеге 16
denvel Post Id



Лейтенант


Сообщений всего: 20
Дата рег-ции: Март 2012  



Я где-то читал, что в атмеге 16 есть встроенный АЦП. Вот только как его использовать даже не догадываюсь. Если кто знает, подскажите пожалуйста. Если в атмеге нет АЦП, и я ошибаюсь, то где его взять, как выглядит и как припаять к МК?
Заранее спасибо.
 
 Top
Роботов Post Id



Гуру


Сообщений всего: 1350
Дата рег-ции: Июнь 2011  



denvel Открою страшную тайну. Подмигивающий В Атмеге16 целых 8! АЦП (ADC).
 
 Top
denvel Post Id



Лейтенант


Сообщений всего: 20
Дата рег-ции: Март 2012  



Ого! а как ими пользоваться?
 
 Top
Роботов Post Id



Гуру


Сообщений всего: 1350
Дата рег-ции: Июнь 2011  



denvel пишет:
а как ими пользоваться?

Для начала надо знать что вы хотите сделать. Затем нарисовать схему того, что хотите сделать. Потом изучить даташит(описание) данного микроконтроллера, понять как работает АЦП, спаять схему и запрограммировать МК. Как видите всё просто Подмигивающий

З.Ы. В какой среде и на каком языке программируете?
 
 Top
denvel Post Id



Лейтенант


Сообщений всего: 20
Дата рег-ции: Март 2012  



на си.
 
 Top
Gordon Freemen Post Id



Рядовой


Сообщений всего: 18
Дата рег-ции: Янв. 2012  



denvel пишет:
на си.

ну а среда программирование, например там есть WinAvr, CodeVisionAVR и прочее. Если CodeVisionAVR то могу дать готовою функцию которая читает значение с указанной ножки.
 
 Top
denvel Post Id



Лейтенант


Сообщений всего: 20
Дата рег-ции: Март 2012  



Использую WinAvr, но скачать и немного освоиться для меня не проблема. Я еще не сильно углубился, и сменить компилятор не проблема. Я так думую Замешательство
 
 Top
Gordon Freemen Post Id



Рядовой


Сообщений всего: 18
Дата рег-ции: Янв. 2012  



denvel пишет:
Использую WinAvr, но скачать и немного освоиться для меня не проблема. Я еще не сильно углубился, и сменить компилятор не проблема. Я так думую Замешательство

Я бы советовал вам перейти на CodeVisionAVR, если скачайте то нужно будет еще книга "CodeVisionAVR для начинающих" (также легко доступна в интернете). А функция пишется так :

CODE:

#include <mega16.h>

#include <delay.h>
#define LED PORTC.0
#define ADC_VREF_TYPE 0x20

// Read the 8 most significant bits
// of the AD conversion result
unsigned char read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCH;
}

void main (void)
{

// ADC initialization
// ADC Clock frequency: 1000,000 kHz
// ADC Voltage Reference: AREF pin
// ADC Auto Trigger Source: None
// Only the 8 most significant bits of
// the AD conversion result are used
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x83;

DDRC.0 = 1; // LED out

while(1)
{
if(read_adc(0) > 512) LED = 1; // если напряжение на пине 0 порта А больше половины //питания МК то зажигаем светодиод
else LED = 0 // иначе тушем
};
}


Итак функцией read_adc(adc_input) мы "приказываем" МК прочитать значение напрежение на на номере входа порта А (В данном случае для примера я показал пример с МК ATmega16 на частоте 8МГц и напряжением питания 5В). Также нужно понимать то что разрядность АЦП 10 Бит, максимальное значение равняется 1023 (5V), минимальное 0 (0В)

Кстати этот код сгенирирован автоматически, в компиляторе есть много таких полезных штучек. Посмотрите если интересно

(Отредактировано автором: 07 Апреля, 2012 - 19:20:23)

 
 Top
mihail Post Id



Гуру


Сообщений всего: 1065
Дата рег-ции: Март 2010  



Я бы не советовал переходить на CodeVisionAVR. Он платный. Бесплатная версия имеет ограничение на размер программы. В этом компиляторе предусмотрены специфические конструкции "облегчающие" написание программы, но не понимаемые ни каким другим компилятором.

AVR GCC сейчас развивается под крылом Atmel. Является частью AVR Studio. Работу программы можно симулировать в студии. Си более стандартный. Если в дальнейшем захотите работать с другими МК (например, ARM) будет проще.

Однако, познакомится с CVAVR было бы не плохо. Генератор кода очень помогает в изучении МК. Только нужно разбираться в сгенерированном коде с помощью datasheet, а не пользоваться бездумно.

Еще есть маленький бесплатный симулятор VMLAB.
 
 Top
Gordon Freemen Post Id



Рядовой


Сообщений всего: 18
Дата рег-ции: Янв. 2012  



mihail пишет:
Я бы не советовал переходить на CodeVisionAVR. Он платный. Бесплатная версия имеет ограничение на размер программы. В этом компиляторе предусмотрены специфические конструкции "облегчающие" написание программы, но не понимаемые ни каким другим компилятором.

AVR GCC сейчас развивается под крылом Atmel. Является частью AVR Studio. Работу программы можно симулировать в студии. Си более стандартный. Если в дальнейшем захотите работать с другими МК (например, ARM) будет проще.

Однако, познакомится с CVAVR было бы не плохо. Генератор кода очень помогает в изучении МК. Только нужно разбираться в сгенерированном коде с помощью datasheet, а не пользоваться бездумно.

Еще есть маленький бесплатный симулятор VMLAB.


Я с вами согласен, но и код с СodeVisionAVR можно пошагово отлаживать в AvrStudio для этого нужно скомпилировать проект, и в Студио просто открыть файл с разрешение .cof
 
 Top
mihail Post Id



Гуру


Сообщений всего: 1065
Дата рег-ции: Март 2010  



denvel
Пока учитесь программы пишите для разных компиляторов (CVAVR, AVR GCC, IAR AVR, ICC). Лучше разберетесь в компиляторах и МК. Ассемблер посмотрите.
Gordon Freemen
Я работу программ написанных в CVAVR смотрел в VMLAB. Удобно. Можно простенькие схемки собирать. Работу ADC смотреть. ISIS Proteus для изучения одного МК великоват Улыбка
(Добавление)
Вообще, лучше пользоваться разными программами, т.к. глюки у них тоже обычно разные Улыбка

(Отредактировано автором: 07 Апреля, 2012 - 21:43:02)

 
 Top
denvel Post Id



Лейтенант


Сообщений всего: 20
Дата рег-ции: Март 2012  



всем большое спасибо за советы. теперь буду разбираться.
 
 Top
Страниц (1): [1]
« С чего начать? »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 





Powered by Exclusive Bulletin Board
ExBB FM 1.0 RC1 Smiles by Fool from Foolstown
  Яндекс.Метрика   Рейтинг@Mail.ru