Atmega128 Данные С Ацп

20-04-2013, 12:02 От: admin Посмотрели: 1083
Здравствуйте! Задача: считать данные из АЦП и выдать получившийся результат по COM порту. Без подачи напряжения на вход АЦП на выходе с СОМ порта получаю ноль. Подаю напряжение на  АЦП -получаю тот же ноль. Может ошибка кроется в регистрах данных ADCH и ADCL, я не совсем понял как туда записываются данные. А может неправильно преобразовываю.


#include <avr/io.h>
#include <avr/iom128.h>
#include <avr/delay.h>
#include <stdio.h>
#include <avr/interrupt.h>
#define xtal 8000000L
#define baud 9600

int ADCvalue ;
char *str;
//инициализация АЦП
ADC_init()
{
ADCSRA |= (1<<ADEN)|(0<<ADSC)|(0<<ADFR)|(0<<ADIF)|(0<<ADIE)|(1<<ADPS2)|(1<<ADPS1)|(0<<ADPS0);
ADMUX |=(0<<REFS1)|(0<<REFS0)|(0<<ADLAR)|(0<<MUX3)|(0<<MUX2)|(0<<MUX1)|(0<<MUX0);
}
//запуск преобразования АЦП
unsigned int ADC_convert()
{
_delay_ms(10);
ADCSRA |=(1<<ADSC);//Начать преобразование
_delay_ms(10);
while ((ADCSRA&0x10)==0);
ADCSRA |=(0<<ADIF);

return ADCL; // т.к. в ADLAR стоит 0

}
//прерывание по кнопке
ISR(INT0_vect)
{

_delay_ms(10);
ADC_convert();//отправляю в АЦП
ADCvalue=ADC_convert();//получаю значение с АЦП
//ADCvalue=ADCvalue*0.0049; //формула расчета напряжения полученного АЦП
itoa(ADCvalue,str,10);//записываю это дело в строку
uart_puts(str);//отправляю на СОМ порт

}
//функция записи в СОМ порт
void uart_puts( char *str )
{
unsigned char c;
while( ( c = *str++ ) != 0 ) {
uart_putc( c );
}
}
int main(void)
{
cli();//запрещаю прерывания
uint32_t temp;
temp = xtal/16/baud-1;
UBRR0H = (temp >> 8);
UBRR0L = (temp & 0xFF);
//настройка прерываний
EICRA |= (1<<ISC01)|(1<<ISC00);

EIMSK |=(1<<INT0);
//Настройка СОМ порта
// Initialize UCSRB
UCSR0B |= (1 <<RXEN0) | (1 << TXEN0 );
//PRR0
// Initialize UCSRC cprrect;y
//UCSR0C |= ( 1 << UCSZ00 )|( 1 << UCSZ01 )|( 0 << USBS0 )| (0 << UPM00)|(0 << UPM01) ;
UCSR0C |= (0<<UMSEL0)|(0<<USBS0)|(1<<UCSZ01)|(1<<UCSZ00)|(0<<UPM00)|(0<<UPM01);


ADC_init();
DDRF=0x00;



sei();
while(1)
{



}
}

Раздел: AVR

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться, либо войти на сайт под своим именем.

Обсудить на форуме


На момент добавления Atmega128 Данные С Ацп все ссылки были рабочие.
Все публикации статей, книг и журналов, представлены на этом сайте, исключительно для ознакомления,
авторские права на эти публикации принадлежат авторам статей, книг и издательствам журналов!
Подробно тут | Жалоба
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.


Опрос

Ваши предпочтения в TRX


Одинарное преобразование
Двойное преобразование
Прямое преобразование
SDR
Другое
Мне всё равно

Популярные новости
Календарь новостей
«    Май 2024    »
ПнВтСрЧтПтСбВс
 12345
6789101112
13141516171819
20212223242526
2728293031