Страница 1 из 1
АЦП на Atmega8
Добавлено: Вт июн 17, 2014 21:16:25
zwer97
Есть Atmega8, знаю что у нее есть функция считывания и переобразования аналогового сигнала в цыфровой через порты ADC.
Аналоговый сигнал у меня представлен сигналом с акселерометра mma7361 (там выходит питание от 1 до 2 вольт). Нужно переобразовать в число и залить в переменную. Времени учить АЦП полностью нету, да и смысла тоже, это разовый проэкт.
Помогите пожалуйста с кодом.
*Немного не в ту тему, но форум для МК закрыт.
Re: АЦП на Atmega8
Добавлено: Вт июн 17, 2014 21:28:50
Pink-Pank
там учить 2 страницы. стыдно.
Re: АЦП на Atmega8
Добавлено: Вт июн 17, 2014 21:39:07
zwer97
Pink-Pank писал(а):там учить 2 страницы. стыдно.
http://myrobot.ru/wiki/index.php?n=CodeLibrary.AVRADC вот, + кучу сайтов перелопатил. Так и не понял как значение в переменную записать.
Re: АЦП на Atmega8
Добавлено: Вт июн 17, 2014 22:21:19
zwer97
Вот моя програма, но значение ADCH всегда 255 и не меняеться (вычеслил експерементально)
Код: Выделить всё
#define F_CPU 1000000UL // 1 MHz
#include <avr/io.h>
#include <avr/delay.h>
int main (void){
// инициализация портов
DDRD = 0xff;
DDRC = 0x00;
ADCSR = 0b10000011; // ADEN=1 (7-й бит); ADPS2..0=011;
ADMUX = 0b00100001; // MUX3..0=ADC1 (00001);
while(1) {
ADCSR |= _BV(ADSC); // запуск преобразования
loop_until_bit_is_set(ADCSR,ADSC); // ждем, пока не
// будет сброшен ADSC
_delay_us(1); // ждем обновления регистра данных
if (ADCH < 255)
{PORTD |= _BV(PD0); // установить "1" на линии 0 порта D
PORTD &= ~_BV(PD1); // установить "0" на линии 1 порта D
}
else
{
PORTD |= _BV(PD1); // установить "1" на линии 1 порта D
PORTD &= ~_BV(PD0); // установить "0" на линии 0 порта D
}
}
}
Re: АЦП на Atmega8
Добавлено: Вт июн 17, 2014 22:48:14
zwer97
Нашел ответ на свой вопрос вод тут. Всем кому нужно, заходите. Все очень понятно написано))
http://radioparty.ru/index.php/prog-avr ... l=&start=1
Re: АЦП на Atmega8
Добавлено: Ср июн 18, 2014 13:23:19
zwer97
Теперь появилась следующая проблема.
Нужно считать два аналоговых сигнала с ADC0 и ADC1, но повсюду написано только как считать один.
Без опытного человека не обойтись.
Re: АЦП на Atmega8
Добавлено: Ср июн 18, 2014 13:34:59
Pink-Pank
Есть такой чувак Евстифеев. Написал книгу на руccком об AVR-контроллерах. скачайте.