roboforum.ru

Технический форум по робототехнике.
Текущее время: 02 ноя 2024, 08:24

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 2149 ]  На страницу Пред.  1 ... 99, 100, 101, 102, 103, 104, 105 ... 144  След.
Автор Сообщение
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 05 мар 2010, 21:06 
Не в сети
Аватара пользователя

Зарегистрирован: 07 сен 2009, 20:06
Сообщения: 333
прог. языки: c, c#
ФИО: Евгений
UART настроен правильно, проверял, работает.
Так как выше написано не работает, undefined symbol 'ADSC'!
АЦП настроен мастером Cvavr:
Код:
DIDR0=0x3E;
ADMUX=0xC0 & 0xff;
ADCSRA=0x8E;


P.S Протеусом пользоваться умею, читать эту "кашу" как то неохото...

Добавлено спустя 1 час 8 минут 32 секунды:
Разобрался, когда источник опорного напряжение поменял с внутреннего на AVCC, и все ок :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 07 мар 2010, 22:14 
Не в сети
Аватара пользователя

Зарегистрирован: 07 сен 2009, 20:06
Сообщения: 333
прог. языки: c, c#
ФИО: Евгений
С одним каналом АЦп работать научился, включать и выключать каналы тоже, но есть вопрос, если я оцифровываю напряжение с 2-х каналов АЦП, результат оцифровки по-прежнему записывается в ADCW?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 07 мар 2010, 22:37 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
osc писал(а):
P.S Протеусом пользоваться умею,

Ну и ...

_________________
Читайте !


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 11 мар 2010, 15:42 
Не в сети

Зарегистрирован: 11 мар 2010, 14:47
Сообщения: 5
Откуда: Ставрополь
Доброва времени суток. У меня проблема . Я делаю модинг игровой приставки XBOX 360 под робота с мультика ВАЛЛИ с гусеницами, головой, руками . По задумке гусеницы будут не задействованы, просто при включении приставка будет приподниматься над поверхностью как Танк эта функция уже сделана. Голова с редукторами, вращение в право ,лево , на 180 градусов , также подъём и наклон головы, редуктора есть для этого с обычными моторами , еще функция подъема и опускания руки. Хотелось бы, чтоб голова без определенных интервалах времени(хаотично) смотрела то в верх то вниз , вправо лево , то совместно право в верх или на руку а рука при этом поднялась , в общем жил своей жизнью . Вопрос так как я в МК полный нуб , может кто видел схемку с прошивкой подобие моего варианта, МК мне пошьют а схему сам соберу. Посоветуйте ,что ни будь.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 15 мар 2010, 00:43 
Не в сети

Зарегистрирован: 01 ноя 2006, 18:27
Сообщения: 5
Откуда: Неизвестно...
osc
Цитата:
если я оцифровываю напряжение с 2-х каналов АЦП, результат оцифровки по-прежнему записывается в ADCW?

Если речь не о Xmega - куда-ж ему еще бедному деться.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 15 мар 2010, 17:58 
Не в сети
Аватара пользователя

Зарегистрирован: 07 сен 2009, 20:06
Сообщения: 333
прог. языки: c, c#
ФИО: Евгений
Да я уже разобрался.
Вопрос по АЦП меги16, настроил все правильно, оцифровываю и отправляю в UART, приходят странные значения, настройки:
Код:
ADMUX=0b01100000;
ADCSRA=0b10001110;
//код в прерывании:
interrupt [ADC_INT] void adc_isr(void)
{
unsigned int adc_data;     
adc_data=ADCH;   
result = ((adc_data*1024)/2.56)*3; //умножаю на 3 т.к. на входе стоит делитель напряжения.
putchar((int)result);
}

Напряжение на входе делителя 5 в. Опорное напряжение 2.56, напряжение на входе АЦП 1.7 в. 1.7*3 = 5.1 все правильно, но в UART приходит 32 :crazy: Конденсатор на AREF есть. Подобным образом измерял напряжение при помощи atmega88, все работало, а мега 16 не хочет, в чем моя ошибка?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 15 мар 2010, 18:07 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2008, 21:15
Сообщения: 4130
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич
А что ты ожидаешь получить в уарте при напряжении 1.7 вольт?

_________________
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 15 мар 2010, 18:13 
Не в сети
Аватара пользователя

Зарегистрирован: 07 сен 2009, 20:06
Сообщения: 333
прог. языки: c, c#
ФИО: Евгений
5 т.к. (adc_data*1024)/2.56 = 1.7 , потом умножаю на 3 и получаю 5.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 15 мар 2010, 18:19 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2008, 21:15
Сообщения: 4130
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич
Даже если в adc_data будет 1, то 1 * 1024 / 2.56 = 400. Откуда возьмется 1.7 когда adc_data = 680?
osc писал(а):
в чем моя ошибка?

Похоже, арифметику подзабыл

_________________
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 15 мар 2010, 20:59 
Не в сети
Аватара пользователя

Зарегистрирован: 07 сен 2009, 20:06
Сообщения: 333
прог. языки: c, c#
ФИО: Евгений
Похоже :D
Напряжение считается по формуле U = (ADCH*2.56)/1024
Если adch = 680, то U должно быть минимум 1, приходит 0, в чем же дело?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 15 мар 2010, 21:18 
Не в сети
Аватара пользователя

Зарегистрирован: 03 авг 2007, 19:43
Сообщения: 1437
Откуда: Екатеринбург
прог. языки: Си, асм со словарем
unsigned int adc_data;
unsigned int 16 0 to 65535


все операции с целыми числами, откуда деление на дробь!!
как оно ваще у вас работает??

и в порт сначала надо получить значение с adc_data, а уже потом, когда значение будет правильным, начинать извращаться над ним.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 15 мар 2010, 21:20 
Не в сети
Аватара пользователя

Зарегистрирован: 07 сен 2009, 20:06
Сообщения: 333
прог. языки: c, c#
ФИО: Евгений
Сорри, описка, все в double
Код:

interrupt [ADC_INT] void adc_isr(void)
{
double adc_data;
adc_data=((ADCH*2.56)/1024);     
putchar((char)adc_data); 
}

Приходит 55, а должно 1. Ради интереса посмотрел как я раньше считывал результат с АЦП меги88, все также, разве что регистры немного другие.

Дошло, в ADMUX не то число записал :oops:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 15 мар 2010, 22:06 
Не в сети
Аватара пользователя

Зарегистрирован: 03 авг 2007, 19:43
Сообщения: 1437
Откуда: Екатеринбург
прог. языки: Си, асм со словарем
незнаю на сколько правильно, я чтоб уйти от дробей делал так.
Код:
Power_bat=(unsigned int) (((unsigned long int)adc_data[1])* 4590/10000) ;  // расчет питания на батарее

данные АЦП умножал на некий коэф. и на выходе получал сразу напряжение с учетом делителя.
Код:
к примеру на делителе имеем 1,7В
делитель запитан от 5В
опорное 2,56
АЦП расчетно должен выдать 680.
5В/680=0,0073529411764705882352941176470588, округлим =0,00735

теперь в зависимости от точности можно считать так:

Код:
680*7=4760       /100=47
680*73=49640     /1000=49
680*735=499800   /10000=49

тоесть в дальнейшем моё число вписывалось в один байт.
Деля, где надо, на: 10 и %10 получал целую и дробную часть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 15 мар 2010, 22:20 
Не в сети
Аватара пользователя

Зарегистрирован: 07 сен 2009, 20:06
Сообщения: 333
прог. языки: c, c#
ФИО: Евгений
Попробовал по этой методике и по формуле из даташита, результат даже близко не лежит :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 15 мар 2010, 22:22 
Не в сети
Аватара пользователя

Зарегистрирован: 03 авг 2007, 19:43
Сообщения: 1437
Откуда: Екатеринбург
прог. языки: Си, асм со словарем
что вольтметр говорит?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2149 ]  На страницу Пред.  1 ... 99, 100, 101, 102, 103, 104, 105 ... 144  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO