Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.76/17: Рейтинг темы: голосов - 17, средняя оценка - 4.76
SyV@S
0 / 0 / 0
Регистрация: 08.02.2012
Сообщений: 11
1

АЦП AVR, проблемы с компиляцией

12.02.2012, 01:58. Просмотров 3181. Ответов 3
Метки нет (Все метки)

Всем доброго времени суток! Помогите пожалуйста разобраться с кодом (WinAvr для Atmega8). Мне нужно сделать АЦП (точнее компаратор) изучив даташит и погуглив вот что у меня вышло:
Код
#include <avr/io.h>
#include <avr/delay.h>

int main(void)
{
int v1;

DDRD=0xFF;  // все ножки порта D сделать выходами

//Иницилиазируем АЦП
ADMUX = 0xC0;// Выбрали в качестве опорного напряжения внутренний 2.56В
ADCSRA = 0x8F;

while(1)
{
v1 = ADC_result(0x00);
if (vl1 <= 613)
{
PORTD = 0xff;
}
}

}

unsykned int ADC_result(unsykned char adc_input)
{
ADMUX = 0xC0;
ADMUX=adc_input | ADMUX ; // Выбрали в качестве опорного напряжения внутренний 2.56В
_delay_ms(100); //задержка для стабилизации входного напряжения
ADCSRA = ADCSRA | 0x40;//начинаем преобразование (ADSC = 1)
while((ADCSRA & 0x10)==0); //ждем, пока АЦП закончит преобразование (ADIF = 0)
ADCSRA|=0x10;//устанавливаем ADIF
return ADCW;//ADCW - содержит ADCH и ADCL
}
Ошибка в строке
Код
v1 = ADC_result(0x00);
Помогите начинающему, а то я уже даже не знаю что думать. Вроде все правильно: v - int, ф-ия ADC_result() принимает значение unsykned int...А вот с номером канала я точно не знаю,мб тут что-то не так и я не правильно указываю..
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2012, 01:58
Ответы с готовыми решениями:

Проблемы с компиляцией в AVR Studio 5
Недавно поставил себе студию 5-ку. Сегодня попробовал собрать проект. Скомпилировал, получил hex....

Проблема с компиляцией из ассемблера в AVR Studio
Написал прогу на Асме откомпилировал прошил не работает. Исправил AND на OR работает. В симуляторе...

Проблемы с компиляцией
Доброго времени суток! Проблема такая: не компилируется код на AVR Studio... Помогите, пожалуйста...

AVR Studio4 и АЦП
Коллеги, приветствую, гулял по коду отладчиком и обнаружил что при частоте тактирования АЦП - 1...

Про АЦП в AVR
Нужна консультация про АЦП в микроконтроллере 8535. Вопрос в следующем. Собрал схему измерения...

3
kytikot
0 / 0 / 1
Регистрация: 27.01.2010
Сообщений: 3,435
12.02.2012, 02:10 2
Перед функцией main добавь строчку объявления функции:

unsykned int ADC_result(unsykned char adc_input);

Потому что еще на этапе компиляции в момент вызова (там где у тебя ошибка) - еще неизвестно, что же это за функция, и какие у нее должны быть параметры и тип.
0
SyV@S
0 / 0 / 0
Регистрация: 08.02.2012
Сообщений: 11
12.02.2012, 02:13 3
Цитата Сообщение от kytikot
Перед функцией main добавь строчку объявления функции:

unsykned int ADC_result(unsykned char adc_input);

Потому что еще на этапе компиляции в момент вызова (там где у тебя ошибка) - еще неизвестно, что же это за функция, и какие у нее должны быть параметры и тип.
Спасибо большое =) Теперь буду объявлять прототип фу-ий ))) Не думал что это так критично))
0
kytikot
0 / 0 / 1
Регистрация: 27.01.2010
Сообщений: 3,435
12.02.2012, 02:17 4
Либо не объявлять прототипы, а само тело функции размещать выше того места, где они будут реально вызваны.

Но это неканонично.
0
12.02.2012, 02:17
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.02.2012, 02:17

Внешний АЦП для AVR
Здравствуйте форумчане. Необходим совет по поводу внешнего АЦП для МК. Для решения моей задачи...

AVR АЦП использование нескольких каналов
Кто пробовал использовать несколько каналов АЦП одновременно (ну, почти одновременно) - как это...

AVR АЦП - измерить силу тока
Привет, Вопрос по поводу использования АЦП для измерения силы тока (нужен простенький амперметр...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.