Проблемки с АЦП + USART

Обсуждаем контроллеры компании Atmel.
casino777
Первый раз сказал Мяу!
Сообщения: 38
Зарегистрирован: Вт дек 13, 2011 00:00:15

Проблемки с АЦП + USART

Сообщение casino777 »

Проблема заключается в том, что при таком коде на экран терминала выдаётся только первый символ, то есть должно выдаваться "5 volt" а выдаёт только "5"
И еще к ножке PA0 ничего не подключено а на экран выдаёт 2 вольта как это понимать, но при подключении земли выдаёт 0, а питания 5 вольт соответственно.
Спойлер#include <mega16.h>
#include <stdio.h>
#include <delay.h>

#define ADC_VREF_TYPE 0xC0
unsigned int result;// Read the AD conversion result
unsigned int 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 ADCW;
}

// Declare your global variables here

void main(void)
{

PORTB=0x00;
DDRB=0xFF;

PORTD=0xFF;
DDRD=0x00;

GICR|=0xC0;
MCUCR=0x0A;
MCUCSR=0x00;
GIFR=0xC0;

UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x33;

// ADC initialization
// ADC Clock frequency: 1000,000 kHz
// ADC Voltage Reference: Int., cap. on AREF
// ADC Auto Trigger Source: None
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x83;



// Global enable interrupts
#asm("sei")

while (1)
{

float volt;
delay_ms(1000) ;

volt=read_adc(0);
result=ADCW*5/1023;

#asm ("cli")
printf("%uvolt\n",result);
#asm ("sei")





};
}
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Re: Проблемки с АЦП + USART

Сообщение YS »

ничего не подключено а на экран выдаёт 2 вольта


Наводки.

Не нашел, где объявлена переменная result.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
casino777
Первый раз сказал Мяу!
Сообщения: 38
Зарегистрирован: Вт дек 13, 2011 00:00:15

Re: Проблемки с АЦП + USART

Сообщение casino777 »

unsigned int result;// Read the AD conversion result

5-ая строчка
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Re: Проблемки с АЦП + USART

Сообщение YS »

А, да.

Попробуйте забить на всякие printf'ы, а работать непосредственно с UART.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
casino777
Первый раз сказал Мяу!
Сообщения: 38
Зарегистрирован: Вт дек 13, 2011 00:00:15

Re: Проблемки с АЦП + USART

Сообщение casino777 »

непосредственно - это чрез регистр UDR выдавать данные, правильно понимаю? (
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Re: Проблемки с АЦП + USART

Сообщение YS »

Да, как делают все нормальные люди. Использовать printf() во встроенной системе такого уровня - экзотическое извращение. :)

Применять тип float тоже очень не рекомендуется.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
casino777
Первый раз сказал Мяу!
Сообщения: 38
Зарегистрирован: Вт дек 13, 2011 00:00:15

Re: Проблемки с АЦП + USART

Сообщение casino777 »

спасибо, я учту)
casino777
Первый раз сказал Мяу!
Сообщения: 38
Зарегистрирован: Вт дек 13, 2011 00:00:15

Re: Проблемки с АЦП + USART

Сообщение casino777 »

Переделал - заработало, спасибо
А как избавиться от наводок?
и можно ли с помощью АЦП напрямую ток измерять, объясню: мне необходимо поддерживать заданную мощность нагревателя, который является нихромовая спираль, у которой сопротивление от температуры меняется, если да то как выглядит строчка кода,
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6307
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Проблемки с АЦП + USART

Сообщение Jack_A »

casino777 писал(а):и можно ли с помощью АЦП напрямую ток измерять


Можно, если сделать преобразователь "ток-напряжение", в простейшем случае это резистор, но надо думать, как его подключить ко входам АЦП. Короче говоря, строчка кода будет выглядеть приблизительно так : "Товарисч, нарисуй сначала предполагаемую схему подключения". А ток переменный ? Тогда дополнительная забота - добавить к нему постоянную подставку для укладывания данных в диапазон 0...Uref. И по полученному массиву значений вычислить Ieff. И синхронизировать цикл оцифровки с фазой переменного тока, чтобы показания не плавали. В общем, пустяки :)
Или же использовать выпрямление, но тогда понизится точность.
А если нужна мощность, то еще и напряжение мерить надо, пот`ом перемножать. Это если нагреватель питается не от стабилизированного источника.
casino777
Первый раз сказал Мяу!
Сообщения: 38
Зарегистрирован: Вт дек 13, 2011 00:00:15

Re: Проблемки с АЦП + USART

Сообщение casino777 »

ясно) источник постоянный, а что делать с наводками?
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Проблемки с АЦП + USART

Сообщение Аlex »

casino777 писал(а):что делать с наводками?
С какими ?
Вы собрали устройство и Вам мешают наводки ? Как они проявляются, откуда берутся, .... ?

мне необходимо поддерживать заданную мощность нагревателя
Я надеюсь, что Вы не собираетесь греть что-то серьёзное, типа куриных яичек ? А то, что-то мне страшно становится, как бы амлетик не получился, с такими познаниями... :(
casino777
Первый раз сказал Мяу!
Сообщения: 38
Зарегистрирован: Вт дек 13, 2011 00:00:15

Re: Проблемки с АЦП + USART

Сообщение casino777 »

Написал программу, а мне выдаёт постоянно значенияот 2,3 вольта до 2,5 В хоть к порту ничего не подключал, но когда к порту подсоединяю землю - выдаёт 0, питание - 5 В
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Проблемки с АЦП + USART

Сообщение ploop »

хоть к порту ничего не подключал

Ну а что он вам должен выдать? Он всё правильно выдаёт - погоду на Марсе.

подсоединяю землю - выдаёт 0, питание - 5 В

Всё у вас правильно работает значит. Подцепите батарейку для уверенности - должен 1,5В показать.
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Проблемки с АЦП + USART

Сообщение Аlex »

casino777 писал(а):хоть к порту ничего не подключал
Дак подключите. Или у Вас в конструкции он будет висеть в воздухе ? Чёто я не понимаю Вас совсем... :dont_know: Что Вы хотели увидеть при висячем в воздухе ПИНе ?
Странные люди какие-то... Используют что-то не так как нужно и удивляются что у них это "что-то" не работает...
casino777
Первый раз сказал Мяу!
Сообщения: 38
Зарегистрирован: Вт дек 13, 2011 00:00:15

Re: Проблемки с АЦП + USART

Сообщение casino777 »

зачем понимать? мне было интересно - раз ответа нет, спасибо и на этом
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Проблемки с АЦП + USART

Сообщение ploop »

Нет ответа НА ЧТО???
Что будет на висячем пине?
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Проблемки с АЦП + USART

Сообщение Аlex »

раз ответа нет, спасибо и на этом
А Вы сами любите отвечать на вопросы ? Посмотрите, сколько их было к Вам, ни на один Вы не ответили...
Или Вы думаете, что тут экстрасенсы собрались ?
casino777
Первый раз сказал Мяу!
Сообщения: 38
Зарегистрирован: Вт дек 13, 2011 00:00:15

Re: Проблемки с АЦП + USART

Сообщение casino777 »

вот именно ничего нет НИЧЕГО , а 2 ,5 вольта пишет
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Проблемки с АЦП + USART

Сообщение Аlex »

нет НИЧЕГО
Это как понять ? Ничего не должно быть на дисплее ? :)
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Проблемки с АЦП + USART

Сообщение Аlex »

Если где-то нет кого-то, значит кто-то где-то есть.
Ну и где-же этот "кто-то" и куда он мог залезть... :)))
Ответить

Вернуться в «AVR»